Ich wollte einen TRIGGER für meine Datenbank erstellen. Der Code ist, dass:Fehler in Ihrer SQL-Syntax in der Nähe von 'DELIMITER'
DELIMITER ;
DROP TRIGGER IF EXISTS `spi_financial_request_AINS`;
DELIMITER $$
CREATE
DEFINER = CURRENT_USER
TRIGGER `spi_financial_request_AINS` AFTER INSERT ON `spi_financial_request`
FOR EACH ROW BEGIN
DECLARE ev_id INT;
IF check_audit('spi_financial_request')=1 THEN
INSERT INTO spi_audit_event(table_name, record_id,event_type,user_id)
VALUES('spi_financial_request',new.id,'INS',@user_id);
SELECT LAST_INSERT_ID() INTO ev_id;
INSERT INTO spi_audit_data(event_id,column_name,new_value)VALUES(ev_id,'id',new.id);
INSERT INTO spi_audit_data(event_id,column_name,new_value)VALUES(ev_id,'request_id',new.request_id);
INSERT INTO spi_audit_data(event_id,column_name,new_value)VALUES(ev_id,'payment_type_id',new.payment_type_id);
END IF;
END;
$$
DELIMITER ;
ich es auf meinem lokalen Standort ausgeführt haben (SQLyog und 5.6.29-Version von MySQL verwenden). Es klappt.
Aber als ich versuchte es auf DEV-Server zu verwenden (phpMyAdmin und 5.6.32-Version von MySQL verwenden), ich habe einen Fehler bekommt:
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'DELIMITER' at line 1
Ich verstehe wirklich nicht, was falsch ist.
Das Standardtrennzeichen ist bereits ';' 'versuchen DELIMITER $$' in der ersten Zeile, so dass die die DROP TRIGGER .... 'auch – RiggsFolly
arbeiten Ihre Trigger funktioniert gut auf meinem System. Versuchen Sie nichts mit DELIMITER zu tun, da ich höre, dass es nicht mit PHPMyAdmin verwendet wird – Drew