Oracle数据库数据插入问题
发布网友
发布时间:2022-04-20 01:38
我来回答
共1个回答
热心网友
时间:2022-04-14 00:35
如果id市场自动生成的,也就是有序列,那么有触发器么?如果有触发器,那么根本不需要写SEQ.NEXTVAL,数据库自己就认识。
也就是说
INSERT INTO A (ID, NAME, AGE)
SELECT SEQ.NEXTVAL, Sam, 18 FROM DUAL
与(有触发器)
INSERT INTO A ( NAME, AGE)
SELECT Sam, 18 FROM DUAL
插入的内容一致
我记得12c有一个新功能,建立表的时候,可以直接建立一个自增的序列,相当于10g的序列+触发器,如果写了这个那么根本不用谢SEQ.NEXTVAL,直接union就可以。
如果union这么写不行,那么就再套一层。
也就是
select a,b from(SELECT SEQ.NEXTVAL, Sam a, 18 b FROM DUAL
UNION SELECT SEQ.NEXTVAL, Tom a, 20 b FROM DUAL)
不过好麻烦啊,如果插入的内容不是很多,那么找个列编辑软件直接全部写成insert语句就好了。
如果很多,那就外部表吧,然后用sqlldr导入。