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;
如果没有指定引用字段,则默认引用字段是父表的主键。
如果外键字段引用的是唯一而不是主键字段,则必须在添加约束语句中指定字段名称。