mysql - 如何在 mysql 中强制执行约束?

标签 mysql

我有一个表 T,其中包含两个整数类型的字段 A 和 B。

现在我想强制 A 小于或等于 B。

我是否必须创建“插入/更新前”触发器?

如果是,那么如何使触发器失败?

最佳答案

您可以在您的应用程序代码中执行此操作,但最安全的做法是通过触发器在数据库中执行此操作。

要防止插入成功,请在触发器中生成错误。我们做这样的事情:

CREATE TRIGGER `t_insert`
BEFORE UPDATE ON `t`
FOR EACH ROW
  BEGIN
    IF new.A > new.B THEN
      CALL NONEXISTENT_PROC()
    END IF;
  END

关于mysql - 如何在 mysql 中强制执行约束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6217855/

相关文章:

mysql - 是否可以使用现有值从数据库中插入另一个值?

mysql - MySQL中如何返回结果列表,WHERE只返回一个

java - 从 ResultSet Java 获取主键列

php - MySQL服务器消失了,PHP中的PDO和max_allowed_pa​​cket

mysql - 创建存储过程 - SQL

javascript - 将公式存储在表中并在 JavaScript/PHP 函数中使用该公式

php - 根据单独的表插入 `COUNT(*)`

mysql - "type"是mysql中的保留字吗

mysql - 无法读取 MySQL 数据库中的外来字符(Xampp 和 Ruby on Rails)

php - 旧版本的 PHP/MYSQL 是否有 NOT NULL 列的默认值?