[英]how to declare variable phpmyadmin mysql triggers properly?
我有一個數據庫,每當用戶表中的居民地址更新時,我都希望它存儲在用戶的歷史表中。 為此,我正在嘗試編寫觸發器,但是在phpmyadmin中失敗了。 同樣,它也沒有給我適當的理由,所以我可以糾正它。 到目前為止,這是我所做的。
DROP TRIGGER IF EXISTS `record_history`;
CREATE TRIGGER `record_history` AFTER UPDATE ON `s_user`
FOR EACH ROW
BEGIN
DECLARE date_current datetime;
DECLARE residential_address varchar(1000);
SET @date_current = NOW();
SET @residential_address = NEW.residential_address;
IF (@residential_address <> OLD.residential_address AND @residential_address != "" AND @residential_address IS NOT NULL) THEN
INSERT INTO history_residential_address (`s_u_id`, `residential_address`, `status`, `date_added`, `date_updated`) VALUES
(OLD.s_u_id, @residential_address, 1, @date_current, @date_current);
END IF;
END;
delimiter ;
較干凈的代碼版本
DROP TRIGGER IF EXISTS `record_history`;
delimiter $$
CREATE TRIGGER `record_history` AFTER UPDATE ON `s_user`
FOR EACH ROW
BEGIN
IF (new.residential_address <> OLD.residential_address AND new.residential_address <> "" AND new.residential_address IS NOT NULL) THEN
INSERT INTO history_residential_address (`s_u_id`, `residential_address`, `status`, `date_added`, `date_updated`) VALUES
(OLD.s_u_id, new.residential_address, 1, now(), now());
END IF;
END $$
delimiter ;
如果仍然有問題,請將s_user中的示例數據作為文本添加到問題中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.