mysql用触发器禁止某条记录的删除、修改:
创新互联是专业的万荣网站建设公司,万荣接单;提供成都网站建设、成都做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行万荣网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
delimiter //
CREATE TRIGGER xx_company_agent_update BEFORE UPDATE ON xx_company_agent
FOR EACH ROW
BEGIN
IF OLD.bank_card is not null THEN
SET NEW.bank_card = OLD.bank_card,NEW.money= OLD.money,NEW.real_money=OLD.real_money,NEW.bank_name=OLD.bank_name;
END IF;
END;//
delimiter ;
扩展资料
mysql触发器的使用
用户记录用户的预期事件(schema是特殊用户的数据库对象集合。这些对象包括:表,索引,视图,存储程序等。在Oracle里, schema要求创建一个用户。但是也可以创建一个没有schema的用户(根本没有对象)。
所以在Oracle-中,用户就是一个帐户而schema就是对象。可能在其他的数据库平台上可以创建一个没有用户的schema。LOGOFF不能是AFTER LOGOFF,将会重新操作,这里应该是BEFORE,否则就会报错:替换可以插入不能有AFTER。创建或替换触发器MYLOGOFFTRIGGER。
参考资料来源:百度百科—mySQL
触发器已经没有单独操作修改的,如果想修改,一般是删除原来的触发器后创建同名的触发器。mysql使用的时候,一般建议不使用触发器,即使使用触发器,要确保触发器的执行效率非常高才行。
有时候在修改某一个字段的值得时候我们需要根据当前字段的不同状态进行不同处理,
比如对于用户表,我们需要记录下来用户被访问的次数,但访问次数的初始值为 null。
如下:
CREATE TABLE `test` (
`id` int(11) NULL DEFAULT NULL ,
`name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`visit_num` int(11) NULL DEFAULT NULL
)
我们就可以使用如下的 sql 进行判断和修改
UPDATE test set visit_age=if(visit_num is null,1,visit_num+1) where id=1。
存储过程:
mysql
CREATE
PROCEDURE
up_sbwcsl(IN
xbh
int)
BEGIN
begin
select
科研计划.系部号,是否申报,完成数量
from
科研计划
Where
科研计划.系部号=@xbh
and
是否申报='是'
END;
触发器语法一样的。
Create
trigger
up_ysbz
On
科研计划
For
update
As
Begin
If
update(验收标志)
Update
科研计划
set
验收标志='验收通过'
end