我想知道是否可以使用已存在的记录执行insert语句。例如:
insert into tbl(item_name, item_price) values(select item_name, item_price from tbl where id = 5)
说id是一个自动递增的pk。
当我尝试类似的东西时,我遇到了错误:
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'select'.
Msg 102, Level 15, State 1, Line 1
Incorrect syntax near ')'.
我错过了什么,或者这是不可能的?
答案 0 :(得分:6)
查看此文章:Adding Rows by Using INSERT and SELECT
无论如何,正确的方法如下:
insert into tbl(item_name, item_price)
select item_name, item_price
from tbl
where id = 5
答案 1 :(得分:3)
试试这个:
insert into tbl(item_name, item_price) select item_name, item_price from tbl where id = 5
答案 2 :(得分:0)
在MySQL中可以使用子查询,但如果你这样做,那么你的数据库可能没有正确规范化,设计变更将是你最好的举动。
以下是子查询的语法:http://dev.mysql.com/doc/refman/5.0/en/subqueries.html