需要建一个触发器,在update表之后执行,及update表之后如果更新的那个字段的值小于0,则将其置为0
我这么写不对,请指教!
create trigger check_after_update_msclientmembercard
after update on ms_client_membercard
for each row
if new.remain_money < 0 then
update ms_client_membercard set remain_money = 0 where client_id = new.client_id;
我这么写不对,请指教!
create trigger check_after_update_msclientmembercard
after update on ms_client_membercard
for each row
if new.remain_money < 0 then
update ms_client_membercard set remain_money = 0 where client_id = new.client_id;
create trigger check_after_update_msclientmembercard
after update on ms_client_membercard
for each row
begin
if new.remain_money < 0 then
set new.remain_money=0;
end if;
end $
谢谢回复!
我试了你的方法,但是报错“Updating of NEW row is not allowed in after trigger”
create trigger check_after_update_msclientmembercard
before update on ms_client_membercard
for each row
begin
if new.remain_money < 0 then
set new.remain_money=0;
end if;
end $
before update on ms_client_membercard
for each row
if new.remain_money < 0 then
set new.remain_money=0
我想问如果用before的话,那还会在update ms_client_membercard后去再update remain_money < 0的记录为remain_money = 0吗,请指教!
这个,不是触发器了。
使用触发器的,前提是:触发其中一表,而引起另一表的响应。
即一定要有update,insert,delete发生,才行。否则,不能用。
请问我这个触发器有什么问题,总是无法建立
create trigger update_cardstatus_after_insert_clientinfo
after insert on clienttradejour
for each row
if new.trade_item = '升级' then
insert into ms_client_promotion (client_id,client_name,promotion_time,after_card,receive_money,operator)
select client_id,name,trade_time,card_type,receive_money,operator from clienttradejour where client_id = new.client_id
then
看看报什么错误。
此代码是可行的,再有错误,你使用排除法,找找。
create trigger update_cardstatus_after_insert_clientinfo
after insert on clienttradejour
for each row
if new.trade_item = '升级' then
insert into ms_client_promotion (client_id,client_name,promotion_time,after_card,receive_money,operator)
select client_id,name,trade_time,card_type,receive_money,operator from clienttradejour where client_id = new.client_id麻烦帮我看看这个哪里有错啊,报错信息很少,看不出来
after insert on clienttradejour
for each row
begin
if new.trade_item = '升级' then
insert into ms_client_promotion (client_id,client_name,promotion_time,after_card,receive_money,operator)
select client_id,name,trade_time,card_type,receive_money,operator from clienttradejour where client_id = new.client_id
end if;
end;