2016-09-07 4 views
1

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.

+0

Das Standardtrennzeichen ist bereits ';' 'versuchen DELIMITER $$' in der ersten Zeile, so dass die die DROP TRIGGER .... 'auch – RiggsFolly

+0

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

Antwort

0

DELIMITER ist ein Mysql-Konsolenbefehl, den Sie in phpmyadmin nicht verwenden können. So stellen Sie das Trennzeichen in phpMyAdmin, see this other answer

+0

Danke sehr, es funktioniert)) –

Verwandte Themen