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

时间:2011-06-02 17:19:16

标签: mysql

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

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

我是否必须创建“插入/更新前”-trigger?

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

1 个答案:

答案 0 :(得分:2)

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

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

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