如何添加检查以测试整数输入的长度?

时间:2010-02-22 22:43:15

标签: sql db2

...对于字符串,它很容易...... LENGTH(属性),但是对于整数,LENGTH总是返回“4”表示整数,“8”表示bigints等等。

所以给出这样的陈述:

create table EMPLOYEE (employeeno bigint NOT NULL PRIMARY KEY);

我怎样才能添加一个CHECK子句来检查插入的employeeseno是否正好是6位?

3 个答案:

答案 0 :(得分:1)

转换它或首先将其转换为varchar,然后使用length。

答案 1 :(得分:1)

使用检查约束来检查val >= 100000val <= 999999

如果需要,您可以将其更改为val >= 0val <= 999999。请注意,int类型不包含有关前导零的任何信息,因此信息在到达数据库时已经丢失。

答案 2 :(得分:1)

就个人而言,我更愿意使用数字约束来检查整数。所以这引出了一个问题,你真的想看一下整数字符串表示的特征长度吗?例如,是否应该允许-100000?我假设情况并非如此,并提出类似的建议:

create table EMPLOYEE (
    employeeno integer
        CHECK (employeeno BETWEEN 1000000 AND 999999)
        NOT NULL PRIMARY KEY
);

注意我将bigint更改为整数,因为约束必然会阻止添加超出整数精度的值