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的做法

返回开发者社区