我不知道我在这里缺少什么:

IF (SELECT 'Nazwa' FROM stanowiska WHERE Nazwa LIKE = 'Lakiernik') IS NULL THEN
INSERT INTO stanowiska (Nazwa) VALUES ('Lakiernik')
ELSE
SELECT Nazwa FROM stanowiska WHERE Nazwa LIKE 'Lakiernik'


任何帮助,将不胜感激

最佳答案

这可能是您想要的:

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);

10-06 08:42