2

我有一个名为 NumberInStock 的列。但是,在数据库中,我想将可以输入到该列中的值限制在 1 到 100 之间。我将在该列上使用什么约束,这将是 SQL 查询的正确语法吗?到目前为止我得到的是:

ALTER TABLE Inventory
ALTER COLUMN NumberInStock 

现在我在这之后放什么来放置约束以及我将使用什么约束

我正在使用具有 1999 ANSI/ISO 标准的 MySQL。

4

2 回答 2

3

通常此类问题应使用CHECK 约束来解决,如下所示 -

ALTER TABLE Inventory ADD CONSTRAINT chk1 CHECK(NumberInStock BETWEEN 1 AND 100);

这可以在ORACLE中完成,但是MySQL报告了一个关于检查约束的实现的BUG 。

因此,您必须在该表上实现两个触发器,即一个用于INSERT,另一个用于UPDATE 。

于 2013-09-29T07:09:43.733 回答
0

使用检查约束。

ALTER TABLE <TABLE NAME>
ADD CONSTRAINT <CONSTRAINT NAME> CHECK(<PREDICATE> OR/AND/NOT <PREDICATE> ...)
于 2013-09-29T05:35:39.893 回答