mysql - 如何使用触发器 mysql 更新表
问题描述
我有两张桌子,t1 和 t2。我正在尝试触发,以便当 t1 获得更新时,我检查更新的内容是否为 t1.nStatus。
如果 t1.nStatus = 2,我需要为所有等于 t1.nId 的 t2.customer_Id 设置 t2.bEnabled = 1
CREATE OR REPLACE TRIGGER change AFTER UPDATE ON t1
FOR EACH ROW
BEGIN
IF NEW.nStatus = 2 THEN
UPDATE t2 SET bEnabled = 1 WHERE t2.immobile_id = NEW.nId;
END IF;
END;
我得到的错误:
执行了 1 个查询,0 个成功,1 个错误,0 个警告
查询:CREATE OR REPLACE 触发器 changeStatusImmobile 在 UPDATE 后对每行固定不动,如果 NEW.nStatus = 2 然后 UPDATE 选择...
错误代码:1064 您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在第 5 行的 '' 附近使用正确的语法
执行时间:0 秒传输时间:0 秒总时间:0.146 秒
你有什么想法吗?
解决方案
尝试设置分隔符
DELIMITER $$
CREATE OR REPLACE TRIGGER change AFTER UPDATE ON t1
FOR EACH ROW
BEGIN
IF NEW.nStatus = 2 THEN
UPDATE t2 SET bEnabled = 1 WHERE t2.immobile_id = NEW.nId;
END IF;
END$$
DELIMITER ;
推荐阅读
- yocto - 使用自定义 yocto 映像在 jetson nano 上无法访问以太网
- c# - 使用 Regex 获取单独的 C# 类
- animation - 玩家可以加入多个房间吗?双关语
- reactjs - 修复 Material-UI 对话框底部的按钮
- angular - 有没有办法将服务注入自定义装饰器(Angular)?
- excel - 计算 ArrayList 中唯一项的数量
- python - 我正在尝试将具有一些空属性的 xml 文件导入到表中。收到此错误 AttributeError: 'NoneType' 对象没有属性 'strip'
- php - 令牌“'”无效 - PHP PDO PostgreSQL
- apache-poi - Apache POI 是否支持替换 docx 中的合并字段?
- python - 沿相同方向移动四个一组的矩形