我从oracle收到一条错误,说明"引用列的数量必须与引用的列匹配。"
我希望表测量中的 recorded_on 列在示例表格中引用 recorded_on
示例表中记录列必须与 Scientist_Num 一起成为复合键的一部分
错误来自于
FOREIGN KEY(Recorded_On)参考样本(Scientist,Recorded_On,Site_ID)
import json
def view_function(request):
json_boolean_to_python_boolean = json.loads(request.POST.get('json_field'))
Scientist_Num和Recorded_On列必须在一起使用复合键。
我非常感谢我的问题的答案以及对出了什么问题的解释。
答案 0 :(得分:0)
您可以在样本表中创建虚拟列:
Recorded_virtual varchar2(5) [GENERATED ALWAYS] AS
(Scientist||Recorded_On||Site_ID) [VIRTUAL]
并创建对此列的引用:
CONSTRAINT fk_column
FOREIGN KEY (Recorded_On)
REFERENCES Sample(Recorded_virtual )
答案 1 :(得分:0)
外键引用需要匹配数字和类型中的主键。所以我想你打算:
CREATE TABLE Measurement (
Site_ID varchar2(4) not null,
Scientist_Num varchar2(5) not null,
----^ added for foreign key reference
Recorded_On date not null,
Name varchar2(10) not null,
Value varchar2(10),
Outlier_Indicator varchar2(10),
Primary key (Site_ID, Recorded_On, Name),
FOREIGN KEY (Site_ID) REFERENCES Site(Site_ID),
-------------------------------------^ Presumably you intend the site table
FOREIGN KEY (Scientist_Num, Recorded_On) REFERENCES
Sample(Scientist_Num, Recorded_On)
-----------------^ two columns, both need to already be defined
);
我怀疑您的数据模型存在其他问题,但这应该可以解决语法错误。如果您需要进一步的帮助,请询问其他问题。