您的位置:首页 > 数据库 > MySQL

【MySQL】MySQL 常用语法 之 锁表与解锁表

2013-12-06 18:06 567 查看
mysql 锁表语句:

Lock锁整张表:

写锁定:

LOCK TABLES products WRITE;


写锁,锁定之后,只有当前线程可以进行读操作和写操作,其他线程读操作和写操作均被堵塞.....
读锁定:

LOCK TABLES products READ;


读锁,锁定之后,无论是当前线程还是其他线程均只能读操作,写操作全部被堵塞....

解锁:

UNLOCK TABLES;


行级锁/排他锁 [使用FOR UPDATE]

表需要是InnoDB引擎;

还需要配合事务,否则没有效果[没有事务的话,应该是锁了执行完该句马上又解锁,看不到效果吧];

BEGIN;//启动事务
SELECT * FROM products WHERE id=1 FOR UPDATE;//锁定某一行
COMMIT;//事务提交[或者 ROLLBACK 事务回滚]


在启动事务然后锁定某一行后,在事务提交之前或者事务回滚之前该行会一直处于锁定状态,此时只允许当前线程进行读写操作,其他线程只能进行读操作,其他写操作全部被堵塞....

MYSQL中只有INNODB和BDB类型的数据表才能支持事务处理!其他的类型是不支持的!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: