![0b6ff3c4fefbc634d9cfc8ace7b8db1d.jpeg](https://i-blog.csdnimg.cn/blog_migrate/98ec28c0ffefc02747a070328e2f7969.jpeg)
谈到Update 语句大家可能不会陌生,很多情况下我们都会使用它来更新table中的记录。一般而言我们会使用innodb 的存储引擎,innodb引擎是基于行锁的,具体一点说是针对索引来加锁的(保证锁不能失效),并不是针对记录加锁,如果对于没有建立索引的字段进行过滤操作,从而执行update 的话,会导致表锁 。
今天就看看在使用innodb的时候如何使用update 语句。
已经存在course 表,其内容如下:
![085892e1b521f047f7d1fa8711fb0eaa.jpeg](https://i-blog.csdnimg.cn/blog_migrate/732efa1542d9e097aec47ce43db800b1.jpeg)
目前该表没有加任何的索引,默认情况下id 是表的索引。
接着让我们分别开启两个事务(两个客户端),分别执行下述指令。
开启第一个事务
begin;
update course set name = 'Java' where id = 1;
![9ff35d19f3410f7b96048d47bf19c25a.jpeg](https://i-blog.csdnimg.cn/blog_migrate/ebd85d6c92998e82dc053835773b94b2.jpeg)