我需要求 mysql的某个表 的
某行数据(比如id-99)的上一行数据 (这个表的id不是连续的 )???
某行数据(比如id-99)的上一行数据 (这个表的id不是连续的 )???
解决方案 »
- 如何实现点击按钮后,从MYSQL数据库导出XLS文件并提示下载另存
- DBD:mysql 安装失败
- 关于mysql实现定时器线性调用存储过程
- MySql 怎样修改某字段的属性?使其不自动增长??
- mysql安装问题 1067错误
- 新手,请指教简单的创建postgreSQL函数
- 如何将表A的数据移到表B中
- 请问:哪里有5.0版的mysql下载? 我在其网站上只找到 了alpha版!
- mysql视图有时报Can't create/write to file 'C:\windows\TEMP\#sql_1690_0.MYI
- mysql ibdata1文件被污染or损坏,ib_logfile1,iblogfile2删除。怎么恢复数据库
- 从两个字段中取最大值????
- 这个触发器能执行成功 但是无法删除数据
这样?
MySQL LOCK 表锁MySQL 是一个 C/S 架构的数据库,允许多用户同时访问,如果多用户同时读取、修改同一记录就会引发问题,最佳的解决办法是使用事务,但如果你使用 MySQL 的 MyISAM 类型的表,只能使用 MySQL LOCK 表锁。MySQL LOCK 表锁的效率比事务低很多,所以在 MySQL InnoDB 表中应该使用事务来替代 MySQL LOCK 表锁。我们先来看一下多用户同时访问引发的问题:我们举一个航空公司订票的例子,如果有两个航空公司售票点在同一时间检查同一航班是否有空票,虽然只有剩一张空票,但两个售票点获得的结果都是允许订票。因此这两个售票点都发出订票的请求,如果订票系统不够健壮,那么可能两个售票点都获得了售票。有很多方法解决多用户同时访问的问题,最稳健、最高效的方式是采用事务,但只有 MySQL InnoDB 类型的表支持事务,如果是 MyISAM 表只能使用 MySQL LOCK 表锁。MySQL LOCK 表锁允许被锁的表只允许某一用户访问,直到该表的锁被取消,其他用户无法修改数据,甚至读取数据(取决于 LOCK 表锁的类型)。
LOCK 语法MySQL LOCK 命令的语法如下:LOCK TABLE table1 locktype, table2 locktype ...对一个表解锁:UNLOCK TABLE[S]解锁命令不需要额外的参数,UNLOCK 将解除该用户所有的锁。因为 LOCK 锁阻止其他用户的访问,所以应该尽可能快的执行 UNLOCK 命令。
MySQL LOCK 类型MySQL LOCK 锁的类型有四种,每一种锁定的范围不同:
READ所有的用户只能读取被锁表,不能对表进行修改(包括执行 LOCK 的用户),当表不存在 WRITE 写锁时 READ 读锁被执行。
READ LOCAL除了允许 INSERT 命令以外执行的锁与 READ 相同。
WRITE除了当前用户被允许读取和修改被锁表外,其他用户的所有访问被完全阻止。一个 WRITE 写锁被执行仅当所有其他锁取消时。
LOW PRIORITY WRITE低优先级的读锁,在等待时间内(等待其他锁取消),其他用户的访问将被认为是执行了 READ 读锁,因此将增加等待时间。
本文地址:http://www.bhcode.net/article/20090227/4247.htmlthe same window
lock table provider read
unlock tableswhen u create read lock, other windows can't insert but u can select
when u creat write lock, other windows can't select (dont' say insert)