私は外部キーである3つの汎用キーを持つテーブルを持っています。これは私のクエリです -sqlが存在する場合update else insert not working
IF (EXISTS(SELECT * FROM table1 WHERE col_1 =4))
BEGIN
UPDATE table1
SET col_2 = 3,
col_3 = 100
WHERE col_1 = 4
END
ELSE
BEGIN
INSERT INTO table1
(col_1, col_2, col_3)
VALUES(4, 2, 27)
END
これは私に構文エラーです。エンジンはInnoDBを使用しました。照合:utf8_swedish_ci
は、私もこれを試してみました -
INSERT INTO table1
(col1, col2, col3)
VALUES
(:val1, :val2, :val3)
ON DUPLICATE KEY UPDATE
col2=:val2,
col3=:val3
これが正常に動作してのみ、重複キーを持つのinspite行を挿入しません。
あなただけの 'と' INSERT'をしないのはなぜON DUPLICATE KEY UPDATE'? – Barmar
@Barmar私はそれを試みたが、それは働かない。ドキュメントには、複数のキーがある場合にエラーが発生すると言われています – user983983
mysqlには 'replace'があります。これを使うことができます – devanand