我有一个表格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
)
答案 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 ... SELECT
与WHERE id = 1
:
INSERT INTO table1(id, col2, col3)
SELECT '1' + id , col2, col3
FROM table1
WHERE id = 1
答案 3 :(得分:2)
INSERT
需要VALUES
或SELECT
,而不是两者。
INSERT INTO table1( id, col2, col3 )
SELECT 11 , col2, col3
FROM table1
WHERE id = 1