PLSQL-ben nem enged rendesen változót declarálni
2021-06-01T16:33:23+02:00
2021-06-01T16:33:27+02:00
2022-07-20T10:01:50+02:00
  • Sziasztok,

    egy triggert szeretnék létrehozni, ami az insert előtt fut be, viszont a változóknál valami gond van
    Csak akkor szeretném engedni futtatni az insertet, ha a megadott email cím, nem volt rögzítve az elmúlt 20 percben. (A teljes kódot nem raktam be, csak amivel úgy gondolom gond lehet)

    DECLARE nowtimesec INT; DECLARE sendtimesec INT; DECLARE varemail VARCHAR(100) DEFAULT NEW.email; SELECT TIME_TO_SEC(CURRENT_TIME) INTO nowtimesec FROM dual; SELECT TIME_TO_SEC(table.sendtime) INTO sendtimesec FROM table WHERE table.email = varemail LIMIT 1;
    Ebben a kódban a NEW.email -el bejön az email cím, bele teszi a varemail változóba
    A nowtimesec-be beleteszem a jelenlegi időt másodpercben
    A sendtimesec-be beleteszem a korábban rögzített idejét másodpercben
    Ezt követően szeretném kivonni egyiket a másikból, de nem engedi, változóba sem engedi rögzíteni, sőt semmilyen változót nem enged deklarálni, csak default-ot vagy ha select into-vel teszem bele az értéket

    Ezt pl nem engedi:

    DECLARE variable VARCHAR(100); variable := 'asdqw';
    Amit még nagyon furcsálok, mert a neten a legtöbb kódokat úgy látom, hogy 
    DECLARE
    BEGIN
    END

    Addig nekem nem enged deklarálni semmit, ha csak nem ebben a sorrendben csinálom:
    BEGIN
    DECLARE
    END

    mariadb 10.3.27-et használok
    Mutasd a teljes hozzászólást!
Ez a téma lezárásra került a moderátor által. A lezárás oka: Konkrét, megoldandó problémával a Tudástárat keresd fel (illene már ezt tudnod)! :/
abcd