是否有命令可以测试SQL查询而不执行它?(MySQL或ANSI SQL)

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (46)

有这样的东西吗?

TEST DELETE FROM user WHERE somekey = 45;

它可以返回任何错误,例如,某些键不存在,或者某些违反约束的行为,以及报告有多少行会受到影响,但不执行查询?

我知道,可以轻松地在任何行中不具有写或删除效果的SELECT查询中提交任何查询,但这会导致错误,如果想测试和调试许多查询,那么这是不太实际的。

提问于
用户回答回答于

BEGIN TRANSACTION

DELETE FROM user WHERE somekey = 45;

ROLLBACK TRANSACTION

确保执行整个块,而不仅仅是DELETE语句。此外,不要在任何生产环境或系统上运行此操作,因为你无法承受丢失数据的代价。

用户回答回答于

在MySQL中使用这个

START TRANSACTION;
QUERY;

使用“;”是很重要的,因为如果你不使用,它就不会起作用。例如

START TRANSACTION;
UPDATE tableX SET colX = valueA, colY = valueB WHERE id=1

扫码关注云+社区