私は言うテーブルを持っていて、table1(id, col2, col3)
すべてのデータを複製したいが、言うことid 1
は異なる(idは自動生成された列ではありません)。次のSQLクエリを書きましたが、うまくいきません(構文エラーが発生します):id
11
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
またはを取りますSELECT
。両方ではありません。
INSERT INTO table1( id, col2, col3 )
SELECT 11 , col2, col3
FROM table1
WHERE id = 1