我有一个名为 NumberInStock 的列。但是,在数据库中,我想将可以输入到该列中的值限制在 1 到 100 之间。我将在该列上使用什么约束,这将是 SQL 查询的正确语法吗?到目前为止我得到的是:
ALTER TABLE Inventory
ALTER COLUMN NumberInStock
现在我在这之后放什么来放置约束以及我将使用什么约束
我正在使用具有 1999 ANSI/ISO 标准的 MySQL。
通常此类问题应使用CHECK 约束来解决,如下所示 -
ALTER TABLE Inventory ADD CONSTRAINT chk1 CHECK(NumberInStock BETWEEN 1 AND 100);
这可以在ORACLE中完成,但是MySQL报告了一个关于检查约束的实现的BUG 。
因此,您必须在该表上实现两个触发器,即一个用于INSERT,另一个用于UPDATE 。
使用检查约束。
ALTER TABLE <TABLE NAME>
ADD CONSTRAINT <CONSTRAINT NAME> CHECK(<PREDICATE> OR/AND/NOT <PREDICATE> ...)