MySQL:SQL插入查询以复制同一个表中的数据

时间:2012-09-03 11:10:13

标签: mysql sql

我有一个表格table1(id, col2, col3),我希望复制id 1的所有数据,但不同的id11(ID不是自动生成的列)。我编写了以下sql查询,这对我不起作用(给出语法错误):

INSERT INTO table1(
id,
col2,
col3
)
VALUES (

SELECT 11 , col2, col3
FROM table1 WHERE id=1
)

4 个答案:

答案 0 :(得分:9)

请勿使用“VALUES”关键字

INSERT INTO table1(
id,
col2,
col3
)


SELECT 11 , col2, col3
FROM table1
WHERE id = 1

编辑:

检查您是否使用了正确的列名:

DESC table1;

答案 1 :(得分:3)

试试这个:

INSERT INTO table1(
id,
col2,
col3
)
SELECT 11 , col2, col3
FROM table1
WHERE table1.id = 1

或者,如果您需要更多类似的东西:

INSERT INTO table1(id, col2, col3)
SELECT (SELECT MAX(id) FROM table1) + 1 , col2, col3
FROM table1

答案 2 :(得分:2)

INSERT INTO ... SELECTWHERE id = 1

一起使用
INSERT INTO table1(id, col2, col3)
SELECT '1' + id , col2, col3
FROM table1
WHERE id = 1

答案 3 :(得分:2)

INSERT需要VALUESSELECT,而不是两者。

INSERT INTO table1( id, col2, col3 ) 
SELECT 11 , col2, col3 
FROM table1 
WHERE id = 1