已关闭此问题为not reproducible or was caused by typos。它目前不接受回答。
此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这一个是解决的方式不太可能帮助未来的读者。
关闭7天前。
Improve this question
错误代码:
ORA-02438:列检查约束无法引用其他列
02438. 00000 -“列检查约束无法引用其他列”
原因:试图定义引用另一列的列检查约束。
操作:将其定义为表检查约束。
CREATE TABLE crime_charges
(
charge_id number(10) CONSTRAINT crime_charges_id_pk PRIMARY KEY,
crime_id number(9) CONSTRAINT crime_charges_crime_id_fk
REFERENCES crimes(crime_id),
crime_code number(3) CONSTRAINT crime_charges_crime_code_fk
REFERENCES crime_codes (crime_code),
charge_status varchar2(2),
fine_amount number(2),
court_fee number(7),
amount_paid number(7),
pay_due_date date
CONSTRAINT charge_status_CHECK
CHECK (charge_status IN ('PD','GL', 'NG'))
);
不让我创建表,我试图找到解决方案,但没有出现
1条答案
按热度按时间brqmpdu11#
这是关于一个缺少逗号或错位的约束子句。因为,按照你的说法,Oracle * 认为 * 你正在
pay_due_date
列上创建检查约束,它(Oracle)不会让你这样做,因为列检查约束不能引用其他列。然而,如果你把它放在一个表级(第一个例子)或适当的列(第二个例子),那么它就像预期的那样工作。