oracle数据库中添加外键约束方法的详细解决方案

指定列(或一组列)的外键必须符合另一个表中某些行的值。

在图形界面中,外键tab只需点击外键就可以进行编辑。使用外键的工具栏允许您创建、编辑或删除选定的外键字段。

添加外键:向表中添加外键。

删除外键:删除选定的外键。

使用名称编辑框输入新密钥的名称。

使用引用模式、引用表和引用限制下拉列表分别选择外部索引数据库、表和约束。

要将条形图包含到键中,只需双击列位或单击打开编辑器进行编辑。

删除下拉列表定义了所采取的操作的类型。

没有操作:这是默认操作。引用键不会被更新或删除。

级联:删除已删除或更新参考列值的任何行,作为引用列的新值。

设置null:将引用列设置为null。

使

通过选中或取消复选框,您可以选择或禁用复选框以启用或禁用外键约束。

下面是使用SQL语句创建的方法的正式外观:

1。默认创建方法

当引用的数据被删除时,它将不会被删除。


创建表t_invoice
(编号(10)不为空,
invoice_no VARCHAR2(30)不为空,
约束pk_invoice_id主键(ID));

创建表t_invoice_detail
(编号(10)不为空,
数量(10,3),
件数(10),
invoice_id号(10),
约束pk_detail_id主键(ID));
修改表t_invoice_detail
添加约束fk_invoice_id
外键(invoice_id)参考t_invoice(ID);




2、级联删除

外键的语法有一个选项来指定级联删除功能。此功能仅在删除父表声明的行为。使用此选项,删除操作的父表将自动删除所有相关的子表的记录


修改表t_invoice_detail
添加约束fk_invoice_id
外键(invoice_id)参考t_invoice(ID)
级联删除;




如果你不能连接,你可以设置子表为空外关键字段值和使用空语句删除组(外键字段不能设置非空约束)。


修改表t_invoice_detail
添加约束fk_invoice_id
外键(invoice_id)参考t_invoice(ID)
关于删除集null;




三、引用字段语法结构

外键约束的创建是外键字段被称为父表的主键或唯一约束字段。在这种情况下,不能指定外键引用字段名,如下所示:


修改表t_invoice_detail
添加约束fk_invoice_id
外键(invoice_id)参考t_invoice;




如果没有指定引用字段,则默认引用字段是父表的主键。

如果外键字段引用的是唯一而不是主键字段,则必须在添加约束语句中指定字段名称。