当我尝试通过 codeigniter 添加 mysql 触发器查询时遇到问题 $this->db->query();
但它显示语法错误。下面是代码:
$this->db->query("DELIMITER $$
CREATE TRIGGER `after_stuload_insert_info_data` AFTER INSERT
ON `{$this->tables->hesa_stuload_student_info}`
FOR EACH ROW BEGIN
INSERT INTO `{$this->tables->hesa_student_reportperiod}` (hesa_course_relation_instance_id, student_data_id)
VALUES (new.hesa_course_relation_instance_id, new.student_data_id);
END$$
DELIMITER ; ");
你能告诉我这段代码有什么问题吗?提前致谢。检查下面的错误。
最佳答案
DELIMITER
是一个针对具有查找分号的解析器的客户端的指令。使用脚本,你根本不用这个。您也不会将 $$
放在末尾。
就是这样:
$this->db->query("CREATE TRIGGER
... the rest of the trigger ...
END");
此外,如果您使用变量作为表名称(危险信号!为什么要从 Web 代码创建触发器?),您可能还应该动态生成触发器名称。触发器名称在架构中必须是唯一的。
关于php - 插入后创建触发器Mysql问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38776992/