Создание триггеров просто не работает, я пробовал все, о чем я могу думать, например:
$this->db->query("DELIMITER //\r\n CREATE TRIGGER `delete_post` BEFORE DELETE ON `posts`\r\n FOR EACH ROW BEGIN\r\n DELETE FROM page_content WHERE page_content.post_id = OLD.post_id;\r\n END\r\n //\r\n DELIMITER ;");
И что бы я ни делал, у меня такое ощущение, что он не создаст триггер, потому что Codeigniter создает оператор SQL только в одной строке. Пробовал с и без разрывов строк, все равно получите это сообщение:
Номер ошибки: 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 // CREATE TRIGGER `delete_post` BEFORE DELETE ON `posts` FOR EAC' at line 1 DELIMITER // CREATE TRIGGER `delete_post` BEFORE DELETE ON `posts` FOR EACH ROW BEGIN DELETE FROM page_content WHERE page_content.post_id = OLD.post_id; END // DELIMITER ;
В PHPMyAdmin запускается триггер, так что SQL действителен