sql - 创建外键约束时,是否需要列名?
问题描述
假设我们有两个通过以下脚本创建的表:
create table CAR (
CAR_ID number(19,0),
NAME varchar2(255 char),
primary key (CAR_ID)
);
create table CAR_WHEEL (
CAR_WHEEL_ID number(19,0),
CAR_REF_ID number(19,0),
WHEEL_COLOR varchar2(255 char),
primary key (CAR_WHEEL_ID)
);
现在我想添加一个约束,所以我可以创建这个语句:
alter table CAR_WHEEL
add constraint FK_CAR
foreign key (CAR_REF_ID)
references CAR (CAR_ID);
但我也看到references CAR;
了最后一行的脚本,而不是references CAR (CAR_ID);
有什么区别,我应该何时添加列名?如果CAR
表有更多列的主键,例如,会有任何变化primary key (CAR_ID, NAME)
吗?
如果答案取决于 SQL 方言,我对 Oracle 特别感兴趣。
解决方案
没有特定列的外键将在主键上创建它,因此使用不同的主键您需要从中添加所有列。我不建议使用隐式外键创建。
推荐阅读
- javascript - 为什么我的模拟器每次运行后都会断开连接?
- javascript - jquery中的popover需要转换为javascript才能创建react app
- wordpress - 从 the_content() wordpress 中排除一个类别
- sql-server - 将 KMS 加密备份从 S3 还原到 RDS 实例时出现问题
- c# - 将json键值数组转换为字典?
- json - Postgresql - 使用一个表中的选定列作为 json 选择语句
- excel - Excel 验证 - 仅当前一个单元格非空白时才需要日期
- android - 如何获取对象内矩阵的数据并在 RecyclerView 中可视化它们?
- javascript - Webpack 优化问题
- javascript - 为什么重复元素返回未定义?