sql - 没有主键的外键引用

标签 sql oracle oracle10g oracle11g

我有以下两个表。

CREATE TABLE parent
( c1 INTEGER );

CREATE TABLE child
(
 c1 INTEGER,
 c2 INTEGER,
 c3 INTEGER,
 CONSTRAINT fk_c3 FOREIGN KEY(c3) REFERENCES parent(c1)
);

您一定已经注意到 c1 列不是父表中的主键。
有没有办法在子表中引用它而不用 c1作为主键?

最佳答案

Is there any way to refer it in Child table without making 'c1' as a primary key?



是的。外键只需要引用唯一约束——它不必是主键。您可以在该列上创建唯一的约束。

关于sql - 没有主键的外键引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12819719/

相关文章:

mysql - 如何在 MySQL 中形成这个 WHERE 子句?

sql - 用户偏好应该包含在用户表中吗?

oracle - 尝试更改 sql block 中的表时出现错误

c++ - 如何使用SOCI库处理减号运算符?

java - 从多个表中删除记录时出现 "java.sql.SQLSyntaxErrorException: ORA-00928: missing SELECT keyword"

mysql - 使用 VARCHAR 与 TEXT 在 MySQL 中存储小型 XML 文档的优缺点是什么?

php - mysql中快速和缓慢移动的产品

c# - 在 C# 中使用带有 LIKE 的 Oracle 绑定(bind)变量

SQL 设置运算符 - 从具有不同列的表中选择行

java - 如何将学生日间出勤存储在数据库中并在JTable中显示?