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