Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果对事务运行select查询会发生什么?sequelize的行为如何,会产生什么影响?_Javascript_Typescript_Transactions_Sequelize.js_Amazon Aurora - Fatal编程技术网

Javascript 如果对事务运行select查询会发生什么?sequelize的行为如何,会产生什么影响?

Javascript 如果对事务运行select查询会发生什么?sequelize的行为如何,会产生什么影响?,javascript,typescript,transactions,sequelize.js,amazon-aurora,Javascript,Typescript,Transactions,Sequelize.js,Amazon Aurora,我正在用sequelize开发一个Expressjs应用程序。我想了解有关使用sequelize处理事务的一些事情 节点10 AWS极光MySQL Sequelize,mysql2 npm包 下面是两个场景 场景1 所有查询都是选择查询。如果我在这里使用事务,即使没有插入/更新/删除,会有什么影响 public async Process() { const _transaction = await sequelize.transaction(); try { const p

我正在用sequelize开发一个Expressjs应用程序。我想了解有关使用sequelize处理事务的一些事情

  • 节点10
  • AWS极光MySQL
  • Sequelize,mysql2 npm包
下面是两个场景

场景1

所有查询都是选择查询。如果我在这里使用事务,即使没有插入/更新/删除,会有什么影响

public async Process() {
  const _transaction = await sequelize.transaction();
  try {
    const person = await sequelize.query({
      query: <Select query>,
    }, {
      type: SqlConnection.QueryTypes.SELECT,
      transaction: _transaction
    });

    const department = await sequelize.query({
      query: <Select query>,
    }, {
      type: SqlConnection.QueryTypes.SELECT,
      transaction: _transaction
    });

    // ....other operations
    await transaction.commit();
  } catch (error) {
    if (transaction) {
      await transaction.rollback();
    }
    throw error;
  }
}


public异步进程(){
const_transaction=wait sequelize.transaction();
试一试{
const person=wait sequelize.query({
查询:,
}, {
类型:SqlConnection.QueryTypes.SELECT,
事务:\ u事务
});
const department=wait sequelize.query({
查询:,
}, {
类型:SqlConnection.QueryTypes.SELECT,
事务:\ u事务
});
//……其他行动
等待事务。提交();
}捕获(错误){
如果(交易){
等待事务。回滚();
}
投掷误差;
}
}
场景2

不同类型的查询。如果我也为select查询包含事务,会发生什么

public async Process() {
  const _transaction = await sequelize.transaction();
  try {
    const person = await sequelize.query({
      query: <Select query>,
    }, {
      type: SqlConnection.QueryTypes.SELECT,
      transaction: _transaction
    });

    const department = await sequelize.query({
      query: <Insert query>,
    }, {
      type: SqlConnection.QueryTypes.INSERT,
      transaction: _transaction
    });


    const value = await sequelize.query({
      query: <Insert query>,
    }, {
      type: SqlConnection.QueryTypes.INSERT,
      transaction: _transaction
    });

  // No transaction

   const result = await sequelize.query({
      query: <Select query>,
    }, {
      type: SqlConnection.QueryTypes.SELECT
    });

    await transaction.commit();
  } catch (error) {
    if (transaction) {
      await transaction.rollback();
    }
    throw error;
  }
}


public异步进程(){
const_transaction=wait sequelize.transaction();
试一试{
const person=wait sequelize.query({
查询:,
}, {
类型:SqlConnection.QueryTypes.SELECT,
事务:\ u事务
});
const department=wait sequelize.query({
查询:,
}, {
类型:SqlConnection.QueryTypes.INSERT,
事务:\ u事务
});
const value=wait sequelize.query({
查询:,
}, {
类型:SqlConnection.QueryTypes.INSERT,
事务:\ u事务
});
//无交易
const result=wait sequelize.query({
查询:,
}, {
类型:SqlConnection.QueryTypes.SELECT
});
等待事务。提交();
}捕获(错误){
如果(交易){
等待事务。回滚();
}
投掷误差;
}
}