set global transaction isolation level serializable; //设置隔离级别为序列化

【数据库之美】幻读演示及解决方案_sql
【数据库之美】幻读演示及解决方案_序列化_02

【数据库之美】幻读演示及解决方案_隔离级别_03
【数据库之美】幻读演示及解决方案_数据库_04
【数据库之美】幻读演示及解决方案_数据库_05
【数据库之美】幻读演示及解决方案_隔离级别_06
【数据库之美】幻读演示及解决方案_sql_07
【数据库之美】幻读演示及解决方案_序列化_08

使用 serializable 隔离级别,一个事务没有执行完,其他事务的 SQL 执行不了,可以挡住幻读