我继承了一个使用 MySQL 并由 PHP 前端使用的应用程序。编写这个系统的人花了一些相当复杂的篇幅来确保用户输入的代码有效 - 这意味着这些代码也存在于另一个表中。
当我第一次看到这个时,我想知道为什么他没有使用 CHECK 约束并让 dbms 来解决这个问题 - 我设想有大量不同的程序实现相同的检查,而不仅仅是 dbms 中的一个地方。然后我发现 MySQL 不支持 Check 约束(严格来说并不正确 - 它支持语法但只是忽略它)。
有没有办法可以在 MySQL 中实现检查约束?
任何提示、建议等都会很棒。
最佳答案
你可以用触发器实现类似的东西,但是MySQL本身(8.0.16版本之前)不支持CHECK约束。不过不用担心,它会让您定义它们并默默地忽略它们!
关于MySQL 和检查约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49743085/