【发布时间】:2015-12-28 17:41:13
【问题描述】:
我正在实现一个由 3 个其他值组成的复合主键。我已经创建了表格,并在所有其他字段中插入了数据。我是否正确假设我不需要为复合 pk 提供值,因为它使用其他值来创建自己?这是我的 CREATE 和 INSERT 脚本来帮助...
CREATE TABLE representation
(
representation_id NUMBER (4),
reference_id NUMBER (4),
case_id NUMBER (4),
barrister_id NUMBER (2),
CONSTRAINT representation_case_id_fk FOREIGN KEY
(case_id)
REFERENCES CASE (case_id),
CONSTRAINT representation_barrister_id_fk FOREIGN KEY
(barrister_id)
REFERENCES barrister (barrister_id),
CONSTRAINT representation_pk PRIMARY KEY
(reference_id, case_id, barrister_id)
);
INSERT INTO representation (reference_id, case_id, barrister_id)
VALUES (sq_representation_reference.NEXTVAL, '0', '5');
【问题讨论】:
-
有什么问题?您是否期望 representation_id 得到一个值?
-
是的,您必须将值填充到主键字段中。祝你好运。
-
@trincot 我并没有“期待”它......我不确定结果会是什么,我不确定它是否会被填充。我认为我需要自己填充它 - 这是有道理的。只是想确定一下。不过谢谢
-
“复合主键显示为空。”没有给出任何证据。要使复合主键为空,您需要证明
reference_id、case_id和/或barrister_id为空。Representation_id未设置为您发布的 DDL 中任何类型的键。
标签: sql oracle oracle11g oracle-sqldeveloper