2011-04-23 20 views
2

我有以下的MySql語法來創建一個約束表來檢查P_Id列有大於零的值,但它仍然允許我添加小於0像-1, -2等MySql約束有特定的字段值大於零

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的值?

+0

是的p_id應該是一個主鍵?如果是這樣,你最好讓MySQL使用具有'AUTO_INCREMENT'的PRIMARY KEY('P_Id')'作爲P_Id的一個選項來處理它。 – KushalP 2011-04-23 13:43:15

+0

不,P_Id不應該是主鍵。 – Kalx 2011-04-23 13:45:52

+0

UNSIGNED INT會爲你工作嗎? – trickwallett 2011-04-23 14:11:34

回答