实际操作MySQL安全性和触发器语法的一些注意点(精心制作)

本文详细介绍了MySQL中的安全性约束修改(包括主键、外键、check和默认值)以及触发器的创建方法,强调理论与实践之间的差异,并鼓励读者在遇到问题时交流讨论。
摘要由CSDN通过智能技术生成


前言

学无止境,笔勤不辍。首先祝大家五四青年节快乐!今天主要分享的是MySQL完整性、触发器、安全性等实际操作中的一些语法。


一、安全性语法

前面,我们介绍了安全性的理论知识,现在就来看看实际操作中,可能遇到的问题(大部分是笔者遇到的问题)

1.已建表如何修改约束

A.修改为主键

   ALTER TABLE TABLE_NAME
   //第一种写法:
   ADD CONSTRAINT primary_name PRIMARY KEY(column_name);
   //第二种写法
   ADD PRIMARY KEY(column_name);

B.修改为外键

   ALTER TABLE TABLE_NAME
   //第一种写法:
   ADD CONSTRAINT foreign_name FOREIGN KEY(column_name) REFERENCES table2(column2_name);
   //第二种写法
   ADD FOREIGN KEY(column_name) REFERENCES table2(column2_name);
   //若要增加级联、限制、置空、默认值操作则可以写成一下格式
   //1.级联:
   ADD FOREIGN KEY(column_name) REFERENCES table2(column2_name)
   ON DELETE CASCADE; or  ON UPDATE CASCADE;
   //2.限制:
   ADD FOREIGN KEY(column_name) REFERENCES table2(column2_name)
   ON DELETE RESTRICT/NO ACTION; or  ON UPDATE RESTRICT/NO ACTION;
   //3.置空:
   ADD FOREIGN KEY(column_name) REFERENCES table2(column2_name)
   ON DELETE SET NULL; or  ON UPDATE SET NULL;
   //4.设置默认值:
   ADD FOREIGN KEY(column_name) REFERENCES table2(column2_name)
   ON DELETE SET DEFAULT; or  ON UPDATE SET DEFAULT;

C.增加check操作

   ALTER TABLE TABLE_NAME
   ADD CHECK( column_name 条件);

tips:check语句中不能使用内置函数

D.设置默认值

ALTER TABLE table_name
ALTER COLUMN column_name SET DEFAULT '';
//有一点点不一样

tips: ALTER TABLE 语句,不需要()

二、触发器

1.在MySQL中的可用格式

不同的DBMS语法不同,笔者尝试了很长时间,终于找到了MySQL的语法(太离谱了)

CREATE TRIGGER<trigger_name>
 < BEFORE | AFTER > <INSERT | UPDATE | DELETE >//MySQL没有instead of 这个关键词....如果不符合需要用
 // SIGNAL SQLSTATE'45000‘中断
ON <表名>
 FOR EACH Row
 <执行语句>

笔者只能说,真的输麻了,MySQL的语法没想到这么坑…
emmm,还有 MySQL 中 inserted表 叫做 NEW deleted表 叫做 OLD
IF语句 后应该 跟上 THEN关键词,且要有 END IF;语句
可以使用 DELIMITER // 语句 // 的格式来写MySQL语句,中间的语句可以用; 有些语句必须要用; 但是 在控制台操作的时候就不方便操作,就可以用以上的形式
触发器有些复杂…笔者也需要再去了解…


总结

例如:以上就是今天要讲的内容,理论和实操着实是有很大的不同的,如果大家在实操中出现了问题欢迎评论/私信博主,一起讨论、解决问题… AND 下一篇blog 可能今天/明天发布,也有可能要过段时间啦,希望博主的帖子能对大家有帮助!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值