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

MySQL和检查约束

许俊贤
2023-03-14
问题内容

我继承了一个使用MySQL的应用程序,该应用程序由PHP前端使用。编写此系统的人花了相当长的时间才能确保用户输入的代码有效-
tat表示这些代码也存在于另一个表中。

当我第一次看到此消息时,我想知道为什么他没有使用CHECK约束并让dbms进行解决-
我设想有很多不同的程序会实现相同的检查,而不仅仅是dbms中的一个地方。然后我发现MySQL不支持Check约束(严格来说不是真的-
它支持语法但只是忽略了它)。

有没有一种方法可以在MySQL中实现检查约束?

任何提示,建议等都很好。


问题答案:

您可以使用触发器来实现类似于它们的东西,但是MySQL本身不支持CHECK约束。不过,请放心,它可以让您定义它们,而忽略它们!



 类似资料:
  • 主要内容:选取设置检查约束的字段,在创建表时设置检查约束,在修改表时添加检查约束,删除检查约束MySQL检查约束(CHECK)是用来检查数据表中字段值有效性的一种手段,可以通过 CREATE TABLE 或 ALTER TABLE 语句实现。设置检查约束时要根据实际情况进行设置,这样能够减少无效数据的输入。 在《MySQL默认值》和《MySQL非空约束》中讲解的默认值约束和非空约束也可看作是特殊的检查约束。 选取设置检查约束的字段 检查约束使用 CHECK 关键字,具体的语法格式如下: C

  • 错误:关系“test”的新行违反了检查约束“test_status_check”详细信息:失败的行包含(5,2015-07-21,15:00:00,I7,9,NULL,NULL)。

  • 问题内容: 我想在我的MySQL表上添加一个唯一性约束。该表包含四列: 此约束必须检查对于new行,new和都未包含在或中。 例子 : 有没有办法定义这样的约束? 问题答案: 您可以通过触发器来做到这一点 注意: 由于您使用的MySQL版本缺少技巧,因此当找到具有相同地址的行时,违反对其中一列的约束。 这是 SQLFiddle 演示。取消注释最后一个插入语句之一,然后单击确定。这些插入不会成功。

  • 主要内容:Oracle Check约束简介在本教程中,您将学习如何使用Oracle检查约束来强制域(列)的完整性。 Oracle Check约束简介 Oracle检查约束允许通过限制一列或多列所接受的值来强制执行域完整性。 要创建一个检查约束,可以定义一个返回或的逻辑表达式。 Oracle使用此表达式来验证正在插入或更新的数据。 如果表达式的计算结果为,则Oracle接受数据并进行插入或更新。 否则,Oracle将拒绝这些数据,新数据根本

  • 问题内容: 我有这两张表 Table: Guards Table: Squads 该列指向表中的列,我正在尝试创建一个约束,以检查链接到作为领导者提供的保护ID的列是否为特定值(在本例中为1) 这可能吗?还是我必须使用扳机? 问题答案: 您需要添加一个约束。我将约束包装到一个函数中,因为您需要检查另一个表的值。 该函数将检查防护等级是否足够高:请确保将其设置为适当的值,或者甚至更好地从另一个表中获

  • 问题内容: 我有下表Goods_In_Wagon(Goods_ID,Wagon_ID,Total_Weight)。我需要创建一些if语句检查约束,说 “如果WAGON_ID在90到99之间,则Total_Weight必须大于10。” AND“如果WAGON_ID在100到110之间,则Total_Weight必须大于20。” AND“如果WAGON_ID在111到120之间,则Total_Weig