我正在使用声明
insert into foo select bar from foobar
它运作良好。
然后,有一天,我改为:
insert into foo(bar) select bar from foobar
现在它不起作用。
第二个陈述怎么了?
我想知道这些事情,所以我可以决定将来是否必须小心。
修改
现在很清楚了。我想知道MSSQL和Oracle的语法是否不同。请帮忙
答案 0 :(得分:3)
您有两种可能的语法选择:
insert into foo
select bar from foobar
insert into foo (column_name_of_foo)
values (select bar from foobar)
如果你的foo表不是一个bar列,那么你的第二个语法就会出错,因为你在列中想要插入一些东西。
使用第一种语法,您没有命名要插入的列。
答案 1 :(得分:2)
在第二个语句(insert into table (column)
)中使用语法时,您需要添加values
关键字,并且值本身必须用括号括起来:
insert into foo (bar[, bar2]) values (select bar[, bar2] from foobar)