我有一张表说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
)
不要使用“VALUES”关键字
INSERT INTO table1(
id,
col2,
col3
)
SELECT 11 , col2, col3
FROM table1
WHERE id = 1
编辑 :
检查您是否使用正确的列名:
DESC table1;
试试这个:
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
INSERT INTO ... SELECT
与 一起使用WHERE id = 1
:
INSERT INTO table1(id, col2, col3)
SELECT '1' + id , col2, col3
FROM table1
WHERE id = 1
INSERT
取VALUES
or SELECT
,而不是两者。
INSERT INTO table1( id, col2, col3 )
SELECT 11 , col2, col3
FROM table1
WHERE id = 1