У меня есть таблица с тремя универсальными ключами, которые также являются внешними ключами. Это мой вопрос -sql if exists 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
Это не работает должным образом и только вставить строки несмотря на имеющие ключи дублирующие.
Почему вы не просто делать '' INSERT' с ОБНОВЛЕНИЕ ОБНОВЛЕНИЯ КЛЮЧА? – Barmar
@Barmar Я пробовал это, но он не работает. Документы заявили, что это вызовет ошибки при наличии нескольких ключей – user983983
в mysql, есть 'replace'. вы можете использовать это – devanand