如果名称已使用“NEW_”字符串更新,我想添加一个触发器。下面是我当前的触发器,但它在不检查更新值包含“NEW_”的情况下工作。请指教
- 如果用户将姓名从“Ann”更新为“NEW_Ann”,触发器应该会起作用。
- 如果用户将姓名从“Ann”更新为“Ann111”,触发器将不起作用
代码:
$this->execute("ALTER TABLE `users`
ADD COLUMN `date_` TIMESTAMP NULL DEFAULT NULL");
$this->execute("CREATE TRIGGER `update_user_deleted_date` BEFORE UPDATE ON `users` FOR EACH ROW BEGIN
IF (NEW.name!= OLD.name) THEN
SET NEW.date_deleted = NOW();
END IF;
END ;");
最佳答案
使用这个:
CREATE TRIGGER update_user_deleted_date BEFORE UPDATE ON users
FOR EACH ROW BEGIN
IF (LOCATE('NEW_', NEW.name) != 0) THEN
SET NEW.date_deleted = NOW();
END IF;
END;
LOCATE('NEW_', NEW.name) != 0 表示找到字符串“NEW_”的位置
关于mysql - 如果列已使用特定字符串更新,如何添加触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42608900/