2009-02-27 17 views
2

MySQL INSERT INTO ... SELECTはエラー1064をスローします

テーブルの行をいくつか複製しようとしていますが、ssreportidの列を4から6に変更してください:

 
INSERT INTO ssreportparticipant (ssreportid, sssurveyparticipantid) 
VALUES 
SELECT 6, sssurveyparticipantid FROM ssreportparticipant 
WHERE ssreportid = 4 

エラーは#1064を 'select 6、 ssreportid列の新しいIDが6のレコードを完全に選択します。

表にはssreportparticipantidという主キーがあり、(ssreportid、sssurveyparticipantid)には固有のキーがあります。 select句は、一意のキーペアを持つ新しいレコードを作成するので、問題はありません。私はselect句の前後に大括弧を入れてみましたが、テーブルの2つのエイリアスを使用しても喜びはありませんでした。

サーバーバージョン5.0.45を使用しています。

プログラマの疲れが私にカンマまたは何かがないことを教えてください。

ありがとう、

-Josh

答えて

7

おかげで、私はあなたが私にはわからない「VALUES」

+0

ありがとうございます。ありがとうございました。私は馬鹿であり、マニュアルを読んでいる間は完全にFAILZです。 – iopener

+0

修正。値が指定されると値が使用されます。 ssreportparticipant(ssreportid、sssurveyparticipantid)に挿入 VALUES(6、20) この場合、selectステートメントは値を提供します。 –

+0

あなたは歓迎です;) – ybo

0

を削除するべきだと思いますが、多分あなたがから選択すると、テーブルに挿入することができない可能性があります同じテーブル。あなたはテストのためだけに、別のテーブルから選択しようとしましたか?

+0

それは私も思ったことですが、INSERT INTO ... SELECT構文とINSERT INTO ...を混在させたようです。ありがとう! – iopener

関連する問題