mysql - MySQL 控制台上的事务

标签 mysql

MySQL 带有一个很好的 SQL 提示符。

它的命令之一是 source,它从文本文件中读取命令并执行它们,就像在提示符下键入它们一样。

想象一个包含以下几行的文本文件:

BEGIN TRANSACTION;
UPDATE ....;
UPDATE ....;
DELETE FROM ...;
COMMIT;

如果中间的任何 SQL 语句存在语法或其他错误,它们仍然会继续执行其余部分,包括 COMMIT!哎呀!

如何才能使任何命令失败时事务和脚本都会中止?

最佳答案

您需要declare an exception handler :

DECLARE EXIT HANDLER
    FOR SQLEXCEPTION, SQLWARNING, NOT FOUND
        ROLLBACK;

关于mysql - MySQL 控制台上的事务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8265928/

相关文章:

mysql - MySQL 和 HSQLDB 中均为 "Insert if not exists"

php - 邮政编码查询

mysql - SQL 对列值(键、值)上的数据进行分组

mysql - [ODBC 目标 [16]] : There was an error while trying to get schema information. 该表没有支持列

php - 将从 mysql 检索的所有值乘以一个常量

mysql - 如何在nodejs中切换mysql和mongodb

mysql - 我在哪里可以看到 Eclipse 中的差异 "Hibernate Console Configurations"

php - 亚马逊预签名网址,只允许某些文件类型?

php - 嵌套在主数组结果集中的 MySQL 函数别名

mysql - 具有双向关联的 Hibernate 删除问题