MySql约束使特定字段值大于零

时间:2011-04-23 13:37:59

标签: mysql check-constraints

我有以下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 ??

2 个答案:

答案 0 :(得分:2)

检查约束在mysql中不起作用。你必须制定一些技巧来模仿它们。 看一下这篇文章

http://forge.mysql.com/wiki/Triggers#Emulating_Check_Constraints

答案 1 :(得分:1)

您可以添加派生的

tinyint NOT NULL

id_check

带有(例如)公式

(IF(id<1,NULL,1))

(其他许多可行的变体)

请注意,列名不区分大小写,因此最好将其小写。