没有在前端实现。
触发器例:密码长度大于6
CREATE DEFINER = `root`@`%` TRIGGER `password` BEFORE UPDATe ON `Untitled` FOR EACH ROW BEGIN IF length(NEW.upwd) < 6 THEN DELETE FROM users WHERe upwd=new.upwd; END IF; END;存储过程
例:更新密码
CREATE DEFINER=`root`@`%` PROCEDURE `update_user`( in `uunam` varchar(20), in `uupwd` varchar(10) ) BEGIN update users set upwd = uupwd where unam = uunam; END
或者在Navicat中
四种隔离级别,它们分别在不同的程度上为并发 *** 作的正确调度提供一定的保证:
(1)读未提交(Read Uncommitted);
(2)读提交(Read Committed, RC);
(3)可重复读(Repeated Read, RR);mysql 默认使用级别。
(4)串行化(Serializable);
并发问题:
- 脏读
脏读指的是读到了其他事务未提交的数据(这些数据可能会回滚,也就是可能最终不会存到数据库中)。 - 不可重复读
对指的是在同一事务内,不同的时刻读到的同一批数据可能是不一样的,可能会受到其他事务的影响,比如其他事务改了这批数据并提交了。通常针对数据更新(UPDATE) *** 作。 - 可重复读
可重复读指的是在一个事务内,最开始读到的数据和事务结束前的任意时刻读到的同一批数据都是一致的。通常针对数据更新(UPDATE) *** 作。 - 幻读
幻读是针对数据插入(INSERT) *** 作来说的,当同一个查询在不同时间生成不同的行集合时就是出现了幻读。本质上是由于数据插入(INSERT) *** 作,使得已提交事务B对事务A产生了数据不一致的影响。
打开两个线程,设置读未提交,并取消自动提交功能:
set autocommit = 0;实验
1、脏读
2、幻读
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)