6

私は言うテーブルを持っていて、table1(id, col2, col3)すべてのデータを複製したいが、言うことid 1は異なる(idは自動生成された列ではありません)。次のSQLクエリを書きましたが、うまくいきません(構文エラーが発生します):id11

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

INSERTVALUESまたはを取りますSELECT。両方ではありません。

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