首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将文本文件导入javaDB?

问如何将文本文件导入javaDB?
EN

Stack Overflow用户
提问于 2014-07-11 00:54:34
回答 2查看 253关注 0票数 1

我想知道如何将文本文件中的内容导入数据库(javaDB).This是我的代码,但我在执行时收到错误。我还想声明这个表的主键是自动递增的。

代码语言:javascript
复制
CALL SYSCS_UTIL.SYSCS_IMPORT_TABLE 
(null,'EXPENDITURE','C:\Users\Me\Desktop\textforimport.txt',null,null,null,0);
// This is my import code

//这是我的错误

代码语言:javascript
复制
Executed successfully in 0.003 s.
Line 1, column 1

Error code 30000, SQL state 38000: The exception 'java.sql.SQLException: 
Attempt to modify an identity column 'EXPENDITURE_ID'.' was thrown while evaluating an expression.

Error code 99999, SQL state 42Z23: Attempt to modify an identity column 'EXPENDITURE_ID'. 
Line 4, column 1

Execution finished after 0.003 s, 1 error(s) occurred.

//创建表代码

代码语言:javascript
复制
create table Expenditure (
Expenditure_ID integer not null primary key generated always as identity (start with 1,increment by 1),
Expenditure_Description varchar (75) not null,
Expense double not null,
Expense_Date date not null
);

现在我不是java专家,但我想知道是否有人打电话来帮助我这一点。我会很感激的。谢谢

EN

回答 2

Stack Overflow用户

发布于 2015-02-14 01:34:22

只需将Expenditure_ID的声明更改为“默认情况下生成为身份”,

缺省生成的identity列只有在未给出显式值的情况下才会递增并在插入时使用默认值。与生成的ALWAYS列不同,您可以在插入语句中指定要使用的特定值,而不是生成的默认值。source

票数 2
EN

Stack Overflow用户

发布于 2014-07-11 04:56:59

我的猜测是这是一个简单的SQL问题,而不是java问题。

由于列Expenditure_ID被创建为“主键总是作为identity生成”,因此javaDB将自动为您生成它。而且,当您尝试操作标识列时,您将收到尝试修改标识列错误。

您可以尝试两种方法:

1)从textforimport.txt,中删除列/数据Expenditure_ID.只需导入Expenditure_Description,Expense和Expense_Date.正如我所说的,javaDB将为每一行分配一个ID。

或

2)如果您需要自己定义Expenditure_ID,请修改支出表中的Expenditure_ID列。试着只用"integer not null“(没有主键)来创建它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24682233

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档