以前,也晓得数据库中有锁这个东西。因为在学校里面也没遇到过。可是,进入公司之后,在培训过程中经常遇到。常常在很多人同时操作一张表时发生(以前都是自己一个人操作数据库,难怪遇不到锁?)。
oracle锁
这里所说的所示DML(数据操作语言)的锁,分为:
- 行锁。对表的行进行加排他锁。
- 表锁。对表进行加锁。当对行进行加排他锁时,会自动给当前表加一个共享锁。
- 死锁。如事务1在表A行记录#3中有一排它锁,并等待事务2在表A中记录#4中排它锁的释放,而事务2在表A记录行#4中有一排它锁,并等待事务1在表A中记录#3中排它锁的释放,事务1与事务2彼此等待,因此就造成了死锁。死锁一般是因拙劣的事务设计而产生。
排它锁。其他的事务不能对它读取和修改。
共享锁。多个事务只能读数据不能改数据