Это может быть то, что вы хотите:
IF NOT EXISTS (SELECT 1 FROM stanowiska WHERE Nazwa = 'Lakiernik') THEN
INSERT INTO stanowiska (Nazwa)
VALUES ('Lakiernik');
ELSE SELECT Nazwa FROM stanowiska WHERE Nazwa = 'Lakiernik'
END IF;
Даже это действительно странно. Кодовый блок вставляет в THEN
и возвращает значение в ELSE
. Это не кажется правильным. И, часть возвращаются только Lakiernik
, так что я не думаю, что ELSE
необходимо:
IF NOT EXISTS (SELECT 1 FROM stanowiska WHERE Nazwa = 'Lakiernik') THEN
INSERT INTO stanowiska (Nazwa)
VALUES ('Lakiernik');
END IF;
Однако это условие гонки. Итак, если вы хотите, чтобы предотвратить дубликаты, правильный путь:
create unique index unq_stanowiska_nazwa on stanowiska(nazwa);
Тогда:
INSERT INTO stanowiska (Nazwa)
VALUES ('Lakiernik')
ON DUPLICATE KEY UPDATE nazwa = VALUES(Nazwa);
Что вы пытаетесь делать? Например, 'LIKE =' недопустимый синтаксис. –
Не могли бы вы отправить сообщение об ошибке, если оно есть? –
Я хочу проверить, существует ли запись. Если нет, я хочу вставить его. Если да, я просто хочу его выбрать. – Marox