Ищите решение для этого оператора IF в mySQL - PullRequest
0 голосов
/ 31 мая 2018

Я пытаюсь создать оператор IF с mySQL ... Это если в Oracle SQL

CREATE OR REPLACE TRIGGER pruef
BEFORE INSERT ON belegung 
FOR EACH ROW
DECLARE
    counter_1 INTEGER;
    beleg INTEGER;
    max_platz INTEGER;
BEGIN
SELECT :new.kurs_id into beleg from dual;
SELECT COUNT (*) INTO counter_1 FROM belegung WHERE kurs_id = beleg;
SELECT max_personen INTO max_platz FROM KURS WHERE kurs_id = beleg;  
    IF counter_1 >= max_platz THEN
    RAISE_APPLICATION_ERROR(-20101, 'Maximale Teilnehmerzahl überschritten');    
    END IF; 
END;
/

И это код MySQL

delimiter //                
CREATE TRIGGER pruef_mysql  
BEFORE INSERT ON BELEGUNG
FOR EACH ROW BEGIN
BEGIN
DECLARE 'counter_1' INT;    
        'beleg' INT;
        'max_platz' INT;
    SELECT new.kurs_id into 'beleg' FROM dual;
    SELECT (*) INTO 'counter_1' FROM 'belegung' WHERE kurs_id=beleg;
    SELECT 'max_personen' INTO 'max_platz' FROM 'KURS' WHERE kurs_id = beleg;  
    IF ('counter_1' >= 'max_platz', signal sqlstate -20101 set msgtext= 'Maximale Teilnehmerzahl überschritten');
    END IF;
    END//
DELIMITER ;

Я надеваюне знаю, как мне это сделать ... Возможно, искали не на тех страницах.

1 Ответ

0 голосов
/ 31 мая 2018

Функция IF и оператор IF - это две разные вещи в MySQL. Вы хотите использовать более позднюю https://dev.mysql.com/doc/refman/8.0/en/if.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...