6

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

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

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

4 回答 4

10

不要使用“VALUES”关键字

INSERT INTO table1(
id,
col2,
col3
)


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

编辑 :

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

DESC table1;
于 2012-09-03T11:13:16.430 回答
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
于 2012-09-03T11:14:45.187 回答
2

INSERT INTO ... SELECT与 一起使用WHERE id = 1

INSERT INTO table1(id, col2, col3)
SELECT '1' + id , col2, col3
FROM table1
WHERE id = 1
于 2012-09-03T11:11:32.303 回答
2

INSERTVALUESor SELECT,而不是两者。

INSERT INTO table1( id, col2, col3 ) 
SELECT 11 , col2, col3 
FROM table1 
WHERE id = 1 
于 2012-09-03T11:12:33.950 回答