sql - 复合外键 - 在 Oracle 中可能吗?

标签 sql database oracle

我试图在 Oracle 中创建一个关系/表,它位于两个多对多表之间,因此该表的主键是一个复合键,但两个键都是外键。

CREATE TABLE employee_licence_certificate(
    emp_id NUMBER(4) REFERENCES employee(emp_id)
    , licence_cert_code VARCHAR2(6) REFERENCES licence_certificate(licence_cert_code)
    , date_earned DATE NOT NULL
    ) 
PRIMARY KEY (emp_id, licence_cert_code))

我已经尝试使用组合键的方法,但我似乎收到以下错误,这让我开始怀疑这是否可能?

Error starting at line 1 in command:
CREATE TABLE employee_licence_certificate(emp_id NUMBER(4) REFERENCES employee(emp_id)
, licence_cert_code VARCHAR2(6) REFERENCES licence_certificate(licence_cert_code)
, date_earned DATE NOT NULL) PRIMARY KEY (emp_id, licence_cert_code))
Error at Command Line:3 Column:29
Error report:
SQL Error: ORA-00922: missing or invalid option
00922. 00000 -  "missing or invalid option"
*Cause:    
*Action:

最佳答案

试试这个:

CREATE TABLE employee_licence_certificate(
    emp_id NUMBER(4) REFERENCES employee(emp_id)
  , licence_cert_code VARCHAR2(6) REFERENCES licence_certificate(licence_cert_code)
  , date_earned DATE NOT NULL
  ,
PRIMARY KEY (emp_id, licence_cert_code))

关于sql - 复合外键 - 在 Oracle 中可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8434174/

相关文章:

sql - 在postgres中按日期合并多个值组

sql - 解释 DISTINCT COUNT(*) 的行为

MySQL Workbench 在空闲时断开连接

sql - Oracle - 如何根据属性记录对关系执行规则(简单示例)

oracle - Oracle RAW 列的 Hibernate 映射

php - mysqli_query() 没有产生预期的结果

.NET 参数化查询注入(inject)

mysql - 使用 2 个表中的数据对列进行全文搜索

sql - 通过检查一张表中的各个字段来取值

sql - 将逗号分隔的值拆分为Oracle中的列