I am trying to create a trigger After_Insert on table ORDERS via phpMyAdmin:
DECLARE v1 VARCHAR DEFAULT NULL;
DECLARE v2 VARCHAR DEFAULT '0';
IF NEW.PFIELD =0
THEN
(
SELECT a.NAME,a.CONTACT INTO v1,v2 FROM ADDRESSBOOK a WHERE a.ID=NEW.ID_SENDER LIMIT 1;
REPLACE INTO _SENDERS (AID,OID,OTP,NAME,CONTACT) VALUES (NEW.ID_SENDER,NEW.ID,NEW.OTYPE,v1,v2);
)
ELSE
(
SELECT ap.NAME,ap.CONTACT INTO v1,v2 FROM ADDRESSBOOK_P ap WHERE ap.ID=NEW.PFIELD LIMIT 1;
REPLACE INTO _SENDERS_P (AID,OID,OTP,NAME,CONTACT) VALUES (NEW.PFIELD,NEW.ID,NEW.OTYPE,v1,v2);
)
END IF;
but i am getting the default MySQL error:
MySQL said: #1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'DECLARE v1 VARCHAR DEFAULT NULL; DECLARE v2 VARCHAR DEFAULT NULL; IF NEW....' at line 1
What i am doing wrong? I am an experienced mySQL/php user, but not really friend with the triggers, now i decided to rewrite my hardcoded php code into triggers (where it can be done)
thanks for your suggestions
I got this problem solved, honestly don't know where exactly was the problem, but when i wrote into new SQL script the WHOLE DROP IF EXISTS / CREATE
script, he MySQL server accepted that trigger and it works correctly.
weird.. thanks for the indirect suggestion @Akina
now, my script looks like this:
DELIMITER //
CREATE TRIGGER _AI_ORDERS_
AFTER INSERT
ON ORDERS FOR EACH ROW
BEGIN
DECLARE v1 VARCHAR DEFAULT NULL;
DECLARE v2 VARCHAR DEFAULT '0';
IF NEW.PFIELD =0
THEN
(
SELECT a.NAME,a.CONTACT INTO v1,v2 FROM ADDRESSBOOK a WHERE a.ID=NEW.ID_SENDER LIMIT 1;
REPLACE INTO _SENDERS (AID,OID,OTP,NAME,CONTACT) VALUES (NEW.ID_SENDER,NEW.ID,NEW.OTYPE,v1,v2);
)
ELSE
(
SELECT ap.NAME,ap.CONTACT INTO v1,v2 FROM ADDRESSBOOK_P ap WHERE ap.ID=NEW.PFIELD LIMIT 1;
REPLACE INTO _SENDERS_P (AID,OID,OTP,NAME,CONTACT) VALUES (NEW.PFIELD,NEW.ID,NEW.OTYPE,v1,v2);
)
END IF;
END; //
DELIMITER ;
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.