在mySQL中寻找这个IF语句的解决方案

时间:2018-05-31 18:27:33

标签: mysql sql if-statement

我正在尝试用mySQL创建一个IF语句... 这是Oracle SQL中的if

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 :(得分:1)

IF函数和IF语句是MySQL中的两个不同的东西 你想使用后者 https://dev.mysql.com/doc/refman/8.0/en/if.html