隔离等级

启动事务时可能使用的隔离等级:

  1. Sequelize.Transaction.ISOLATION_LEVELS.READ_UNCOMMITTED // "READ UNCOMMITTED"
  2. Sequelize.Transaction.ISOLATION_LEVELS.READ_COMMITTED // "READ COMMITTED"
  3. Sequelize.Transaction.ISOLATION_LEVELS.REPEATABLE_READ // "REPEATABLE READ"
  4. Sequelize.Transaction.ISOLATION_LEVELS.SERIALIZABLE // "SERIALIZABLE"

默认情况下,sequelize 使用数据库的隔离级别. 如果要使用不同的隔离级别,请传入所需级别作为第一个参数:

  1. return sequelize.transaction({
  2. isolationLevel: Sequelize.Transaction.ISOLATION_LEVELS.SERIALIZABLE
  3. }, (t) => {
  4. // 你的事务
  5. });

isolationLevel 可以在初始化 Sequelize 实例时全局设置,也可以在本地为每个事务设置:

  1. // 全局的
  2. new Sequelize('db', 'user', 'pw', {
  3. isolationLevel: Sequelize.Transaction.ISOLATION_LEVELS.SERIALIZABLE
  4. });
  5. // 本地的
  6. sequelize.transaction({
  7. isolationLevel: Sequelize.Transaction.ISOLATION_LEVELS.SERIALIZABLE
  8. });

注意: 在MSSQL的情况下,SET ISOLATION LEVEL 查询不被记录, 指定的 isolationLevel 直接传递到 tedious