Javascript 如果对事务运行select查询会发生什么?sequelize的行为如何,会产生什么影响?
我正在用sequelize开发一个Expressjs应用程序。我想了解有关使用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
- 节点10
- AWS极光MySQL
- Sequelize,mysql2 npm包
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
});
等待事务。提交();
}捕获(错误){
如果(交易){
等待事务。回滚();
}
投掷误差;
}
}