Я пытаюсь вставить несколько строк одновременно и проверить, существуют ли они. Я хочу обновить, если они существуют, иначе вставьте.Инструкция MySQL для вставки, если не существует else update
Мой первичный ключ: «ID». Я не хочу использовать уникальный индекс для столбца «запрос».
То, что я хочу, чтобы вставить/обновление:
INSERT INTO my_table (query, keyword) VALUES ('home', 'home-link');
INSERT INTO my_table (query, keyword) VALUES ('contact', 'contact-link');
мой стол:
--------------------------------
ID | query | keyword |
--------------------------------
1 | home | home-link |
--------------------------------
2 | contact | contact-link |
--------------------------------
Я попробовал это, но это дает мне SQL синтаксис ошибки # 1064:
IF EXISTS(SELECT query FROM my_table WHERE query='home')
THEN
UPDATE my_table SET query='home' AND keyword='home-link' WHERE query='home'
ELSE
INSERT INTO my_table (query, keyword) VALUES ('home', 'home-link')
END IF
IF EXISTS(SELECT query FROM my_table WHERE query='contact')
THEN
UPDATE my_table SET query='contact' AND keyword='contact-link' WHERE query='contact'
ELSE
INSERT INTO my_table (query, keyword) VALUES ('contact', 'contact-link')
END IF
Почему невозможно добавить первичный ключ или, по крайней мере, уникальный ключ, так что вы можете использовать 'insert ... on duplicate key update ...'? – Shadow