2012-02-14 95 views
0

我所用的語句Insert語句問題

insert into foo select bar from foobar 

它工作得很好。

然後,一個陽光明媚的日子,我把它改爲:

insert into foo(bar) select bar from foobar 

,現在這是行不通的。

第二個陳述有什麼不對嗎?

我想知道這些事情,所以我可以決定在將來我是否必須小心。

編輯

現在是清楚的。我想知道MSSQL和Oracle的語法是否不同。請幫助

+0

@juergend並請更新的問題 – MozenRath 2012-02-14 10:35:13

+0

@DennisTraub PLZ檢查更新後的問題 – MozenRath 2012-02-14 10:35:31

+0

http://docs.oracle.com/cd/E11882_01/server.112/e17118/toc.htm – tbone 2012-02-14 11:40:27

回答

3

你有2種可能的語法選擇:

insert into foo 
    select bar from foobar 


insert into foo (column_name_of_foo) 
    values (select bar from foobar) 

如果您foo的表不HABE酒吧列,那麼你將得到一個錯誤與你的第二個語法,因爲你是在你命名列想插入一些東西。

使用第一種語法,您並未命名要插入的列。

+1

好吧,我認爲它確實有效。非常感謝! – MozenRath 2012-02-14 10:23:31

2

當使用您的第二個語句(insert into table (column))語法,你需要添加values關鍵字和值本身必須用括號包圍:

insert into foo (bar[, bar2]) values (select bar[, bar2] from foobar)