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

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类型的数据表才能支持事务处理!其他的类型是不支持的!

你可能感兴趣的:(mysql)