使用MYSQL触发器更改基于另一列的列值

时间:2016-08-19 11:41:24

标签: mysql

我希望触发器能够在balance为0时更改status = 1的值,并且在仅更新后balance的值不等于0时status = 0 ..

Mysql Table

2 个答案:

答案 0 :(得分:1)

CREATE  TRIGGER `db`.`trigger_name`
 AFTER INSERT ON `table_name` FOR EACH ROW
 BEGIN
 update table 
 set status = case when new.balance = 0 then '1' else 0 end;

它将在INSERT期间检查新余额值的值并更新状态。 我希望这会有所帮助。

CREATE  TRIGGER `db`.`trigger_name`
 AFTER UPDATE ON `table_name` FOR EACH ROW
 BEGIN
 update table 
 set status = case when balance = 0 then '1' else 0 end;

答案 1 :(得分:1)

在执行更新之前,使用new行来访问和更改值。

create trigger mytrigger
before update on mytable
for each row
set new.status = (new.balance = 0);

方便地(在MySQL中),true1false0