当前位置: 首页 > 面试题库 >

加入联合查询需要交易吗?

陆文斌
2023-03-14
问题内容

在使用联接进行SQL查询期间,我是否需要使用事务?

我在想类似的东西:

Delete table1, table2, table3 
FROM table1 INNER JOIN table2 ON(...) 
LEFT JOIN table3 ON (...) 
WHERE table1.column = something...

(我不知道该语法是否100%正确,但我想您还是可以理解的)

是否存在并非所有应删除的行都不会被删除的风险?

谢谢!


问题答案:

由于这是单个命令(DELETE),因此无需显式使用事务。根据定义,SQL命令是原子的,即它将删除符合条件的所有行,或者根本不删除任何错误。

编辑:这个答案在理论上是正确的,并且对于支持ACID的数据库。如果数据库不支持原子性,或者存在一些错误会触发数据库引擎方面的错误行为,那么所有选择都将关闭。但是,在这些情况下使用事务进行魔术般的改进不太可能。



 类似资料:
  • 说明 统一收单线下交易查询SDK。 官方文档:https://docs.open.alipay.com/api_1/alipay.trade.query/ 类 请求参数类 请求参数 类名:\Yurun\PaySDK\AlipayApp\Params\Query\Request 属性 名称 类型 说明 $method string 接口名称 $app_auth_token string 详见:htt

  • 说明 统一收单交易退款查询接口SDK。 官方文档:https://docs.open.alipay.com/api_1/alipay.trade.fastpay.refund.query/ 类 请求参数类 请求参数 类名:\Yurun\PaySDK\AlipayApp\Params\RefundQuery\Request 属性 名称 类型 说明 $method string 接口名称 $app_a

  • 描述 贷款发放后,平台方按照合同号和贷款账号查询贷款的交易流水(包括发放、还款等金融交易),默认查询最近90天的交易,最多返回10条。 API代码 loan_app:trxn:query 请求参数 名称 类型 是否必须 描述 示例值 contractNo String 是 合同编号 acctNo String 是 账号 82700156225596267 dtStart Date 否 起始日期 2

  • 我正在制作一些lambda来从dynamoDB表中获取数据。 DynamoDB表具有 复合主键 'setId'作为分区键(范围键)(我用这个词'set'作为名词,就像'group'一样) 'id'作为排序键(散列键) 如果我理解正确, 我可以使用setId来查询,因为DynamoDb通过分区键进行集合。 所以我尝试了这个参数。 但它返回错误 Q. 获取集合是否需要排序键? 提前谢谢! 仅供参考)我

  • 是否可以在JPA中查询“union”,甚至在“Criteria Builder”中查询“union”? 还是使用本机SQL?

  • 前面介绍了如何使用 WHERE 给查询加上条件约束,本小节介绍如何使用 UNION 联合查询。实际业务中,有时候需要把满足多种独立条件的结果集整合到一起,就可以使用 UNOIN 联合查询,本小节介绍 UNION 和 UNION ALL 的用法和区别。 1.UNION ALL联合查询 同样为了演示方便,先向 teacher 表插入多条测试数据: INSERT INTO teacher (name,a