前提・実現したいこと
Mysqlで、テーブルにレコードが存在しないときだけ挿入をしたいが、カラムの値に重複するものがあった場合
Duplicate Column Nameで挿入が行えない
発生している問題・エラーメッセージ
Duplicate Column Name '1'
該当のソースコード
MySQL
1INSERT INTO USER(USER_ID 2 ,USER_NAME 3 ,ADMIN_FLG 4 ,SUPER_FLG) 5 SELECT * FROM (SELECT 'TESTID' 6 ,'TESTNAME' 7 ,1 8 ,1) AS TEMP 9 10 WHERE NOT EXISTS (SELECT * FROM USER 11 WHERE ADMIN_FLG = 1 12 AND SUPER_FLG = 1);
型名等は今使っているものとは違うのですが、イメージとしてはこのような・・・
存在しないときのみ挿入にした場合、挿入する値はVALUESではなくSELECTで出すとのことだったので
このような形になりましたが、その結果値が重複するものがあった場合エラーとなってしまいました。
※追記:上にも書いてる通り、型名等は実際使っているものとは異なっており、単純に同じ値のデータが存在する中で
NOT EXISTSと合わせての挿入をする方法が知りたかったのですが、例としてあげたものがわかりづらく
混乱を招く結果となってしまったようで申し訳ありません。
回答として、自分がしたかったことに対して的確だったOrlofskyさんの回答をベストアンサーとして
勝手ながら解決済みとさせていただきます。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。