2015-09-11 08:54 | 题主 | ||||||||
|
在导入excel文件时,提示 ID不能为空,表中ID为自增字段 在将excel导入到oracle数据库中一个表空间时,出现 ID不能为null的错误提示。这个表中的ID为自增,唯一,不能为空,自增通过table_id.nextval获取的。请问哪位知道,在导入数据时,这个自增的ID如何处理才能导进数据,将导进的数据自动添加ID并自增? |
2015-09-11 14:03 | #1 | ||||||||
|
导入时不要给这个字段赋值,假设a,b,c3个字段,a自增 insert into table (b,c) values(1,2) |
2015-09-11 16:24 | #2 | ||||||||
|
oracle数据库中没有象mysql和mssql中的自动插入机制,oracle中的自增ID通过 select table_id.nextval from dual获取到一个 ID值. oracle 中插入这个ID的值是 insert into table(id) values(table_id.nextval) . 关于这个问题,我最后通过新建一个触发器,来自动插入这个id值,这样我就可以直接 insert into table(b,c) values(1,2), 具体代码如下: create trigger item_bidding_info_Trigger before insert on item_bidding_info for each row begin select item_bidding_info_id.nextval into :new.bid_id from dual; end item_bidding_info_Trigger; 用了这个,再导入时,就不会提示id不能为null的错误了。 |
2015-09-16 19:41 | #3 | ||||||||
|
不用这么复杂 valder 方便正确 取值再回查一下 |
2017-11-08 18:24 | #4 | ||||||||
|
您好,请问您说的valder 取值再回查是怎么操作的???? |
2017-11-09 09:33 | #5 | ||||||||
|
序列类型的值,在插入时不要指定值 请参考1楼 valder的做法 |