gpt4 book ai didi

php - MySQL Event与Table的连接

转载 作者:行者123 更新时间:2023-11-29 00:01:16 25 4
gpt4 key购买 nike

我正在创建一个 MySQL 事件,但它与表记录 ID 相关,所以当那个记录被删除时,这个 MySQL 事件应该被删除。

它适用于我的代码,但如果记录直接从 phpMyAdmin 中删除怎么办?

尝试这个场景,事件没有被删除并且记录不存在。所以出错了。

$this->db->insert("invoice", $data);
$last = $this->db->insert_id();
if ($last)
$str = $this->db->last_query();
$this->db->query("SET GLOBAL event_scheduler = 'ON'");

$this->db->query("CREATE EVENT rec" . $last . " ON SCHEDULE
EVERY 1 MONTH STARTS DATE_SUB(NOW(),INTERVAL '0:01' HOUR_MINUTE)
ON COMPLETION PRESERVE ENABLE DO $str");

我该如何克服这个问题?我听说我可以使用触发器,但如何使用?

最佳答案

像这样创建一个触发器:

SET @ename:='rec';
SET @sql_text = concat('CREATE TRIGGER delete_invoice_event AFTER DELETE on TABLE FOR EACH ROW BEGIN DROP EVENT IF EXISTS ', @ename ,'old.id END');

PREPARE stmt FROM @sql_text;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

您必须使用 PREPARE 语句,因为您的事件名称是动态的,基于 old.id 可以访问的已删除记录 ID

关于php - MySQL Event与Table的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29696574/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com