SQL约束minvalue / maxvalue?

时间:2009-11-15 05:02:34

标签: sql constraints

有没有办法为数字字段设置SQL约束,最小值应为1234,最大值应为4523?

5 个答案:

答案 0 :(得分:48)

the check constraint的SQL Server语法:

create table numbers (
    number int not null
        check(number >= 1234 and number <= 4523),
    ...
)

create table numbers (
    number int not null,
    check(number >= 1234 and number <= 4523),
    ...
)

create table numbers (
    number int not null,
    constraint number_range_check
        check(number >= 1234 and number <= 4523),
    ...
)

答案 1 :(得分:12)

CREATE TABLE WhatEver
(
    ...
    NumericField INTEGER NOT NULL CHECK(NumericField BETWEEN 1234 AND 4523),
    ...
);

请注意,'BETWEEN AND'提供的范围包括引用的限制值。

答案 2 :(得分:1)

如果您使用的是SQL Server,则需要使用如下的CHECK约束:

CREATE TABLE foo (
  someint INT NOT NULL CHECK (someint >= 1234 AND someint <= 4523)
)

答案 3 :(得分:0)

如果您通过SQL Server Management Studio使用SQL Server,添加Check Constraint的最方便的方法是右键单击树视图中的Constraints文件夹(Object Explorer),然后从弹出菜单中选择新约束。

使用名为CK_tableName *

的新空约束弹出Check Constraint窗口

您可以编辑此类建议名称,并在“表达式”字段中插入检查约束的代码。

然后新的约束出现在对象资源管理器中的Constraint文件夹中(在您选择文件夹并点击刷新图标之后),您可以右键单击它并从弹出菜单中选择修改。

答案 4 :(得分:0)

仅供参考

当您需要一系列值的约束时:

{
  "error": {
    "code": "BAD_REQUEST_ERROR",
    "description": "order_id, payment_id, status is/are not required and should not be sent"
  }
}