我使用下面的MySql语法来创建一个带约束的表,以检查P_Id列的值是否大于零,但它仍然允许我添加小于0的值,如-1、-2等。
CREATE TABLE Persons(
P_Id int NOT NULL ,
LastName varchar( 255 ) NOT NULL ,
FirstName varchar( 255 ) ,
Address varchar( 255 ) ,
City varchar( 255 ) ,
CHECK (
P_Id >0
)
)
我是否在上面的结构中做错了什么,使得P_Id的值>0?
发布于 2011-04-23 22:11:25
检查约束在mysql中不起作用。你必须做一些技巧来模仿他们。请看这篇文章
http://forge.mysql.com/wiki/Triggers#Emulating_Check_Constraints
发布于 2019-02-20 23:57:09
您可以添加派生的
tinyint NOT NULL
列被称为
id_check
使用(例如)公式
(IF(id<1,NULL,1))
(许多其他可行的变种)
请注意,列名不区分大小写,因此最好将它们小写。
https://stackoverflow.com/questions/5764461
复制相似问题