Liauchuk Ivan
Liauchuk Ivan

Reputation: 1993

Remove DELIMITER from phpMyAdmin dump

I'm making a dump of my MySql database. I'm using phpMyAdmin and making dump using Export tab. The problem is that for TRIGGERS phpMyAdmin set DELIMITER // and then set it to default DELIMITER ;, but it generate an error in SQL syntax on older versions of phpMyAdmin and in some other cases. Can somebody help me to remove this option in phpMyAdmin? Maybe I understand something wrong?

Sql Code

--
-- Triggers `checklist_question`
--
DROP TRIGGER IF EXISTS `checklist_question_insert`;
DELIMITER //
CREATE TRIGGER `checklist_question_insert` BEFORE INSERT ON `checklist_question`
 FOR EACH ROW SET NEW.www_or_app = IF(@APPLICATION IS NULL, 'www', 'app')
//
DELIMITER ;
DROP TRIGGER IF EXISTS `checklist_question_update`;
DELIMITER //
CREATE TRIGGER `checklist_question_update` BEFORE UPDATE ON `checklist_question`
 FOR EACH ROW SET NEW.www_or_app = IF(@APPLICATION IS NULL, 'www', 'app')
//
DELIMITER ;

Exception code

Codeception PHP Testing Framework v1.8.2
Powered by PHPUnit 3.7.28 by Sebastian Bergmann.


←[37;41m
       ←[0m
←[37;41m  [Codeception\Exception\Module]
       ←[0m
←[37;41m  (Exception in Db) SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual
 that  ←[0m
←[37;41m   corresponds to your MySQL server version for the right syntax to use near 'DELIMITER //
       ←[0m
←[37;41m  CREATE TRIGGER `checklist_question_insert` BEFORE INSERT ON `checkl' at line 1
       ←[0m
←[37;41m  SQL query being executed:
       ←[0m
←[37;41m  DELIMITER //
       ←[0m
←[37;41m  CREATE TRIGGER `checklist_question_insert` BEFORE INSERT ON `checklist_question`
       ←[0m
←[37;41m   FOR EACH ROW SET NEW.www_or_app = IF(@APPLICATION IS NULL, 'www', 'app')
       ←[0m
←[37;41m  //
       ←[0m
←[37;41m  DROP TRIGGER IF EXISTS `checklist_question_update`
       ←[0m
←[37;41m
       ←[0m

Upvotes: 1

Views: 1605

Answers (1)

miltos
miltos

Reputation: 1019

DELIMITER is not a MySQL command. It's a command that your MySQL client needs to support. Try to replace all // with ; and remove DELIMITER declarations.

Upvotes: 1

Related Questions