使用Oracle SqlDeveloper
表T有两列 身份证号码) Desc(VARCHAR2)
我尝试以下查询添加支票:
ALTER TABLE T
ADD CONSTRAINT 100chk CHECK (ID BETWEEN 0 AND 100);
错误报告:SQL错误:ORA-00902:数据类型无效 00902. 00000 - “无效的数据类型” *原因:
*操作:
ID列是数字数据类型 - 为什么不让我添加该约束?
答案 0 :(得分:7)
Oracle可能会对您的约束名100chk
感到困惑。有效名称以字母开头。您可以在无效名称周围加上双引号,Oracle会接受它,但这通常被认为是一个坏主意。
尝试命名约束chk100
:
ALTER TABLE T ADD CONSTRAINT chk100 CHECK (ID BETWEEN 0 AND 100);
Oracle的对象命名规则是here。此链接适用于10.2,但信息也适用于11.x.