【发布时间】:2013-12-13 09:32:40
【问题描述】:
我尝试创建一个具有 INTEGER 属性的表,该属性应限制为正数。我知道有一个 UNSIGNED 选项,但这样做是错误的。因为它允许添加 -10 作为值。它只会赚 10 分。
是否可以拒绝输入错误?我尝试使用 CHECK
DROP TABLE Produkt;
CREATE TABLE Produkt (
Bezeichnung VARCHAR(237) PRIMARY KEY,
ProduktNr INTEGER NOT NULL,
Produktart VARCHAR(3) DEFAULT "XXX",
CONSTRAINT onlyPositive CHECK(ProduktNr >= 0)
);
但我仍然可以添加 -10 作为值...我做错了什么?
【问题讨论】:
-
检查这个答案以了解签名和未签名stackoverflow.com/questions/11515594/…
-
无符号的不能保存负数。
-
unsigned 不能保存负数,但它不会阻止您添加负数...它们只会被转换为正数。
标签: mysql constraints