sql数据库怎么设置外键

上周我在公司的数据库项目上设置了外键约束。
首先,确定主表和子表。
主表是产品表,子表是订单表。
接下来,我选择“产品 ID”作为父列,在订单表中创建一个名为“产品 ID”的外键列,并将数据类型设置为 INT。

我使用 ALTERTABLE 语句向序列表添加了外键约束,如下所示:
ALTER TABLE order 添加外键(产品 ID) 参考产品(产品 ID) 删除级联时 ON UPDATE CASCADE;
通过此配置,当删除 Products 表中的记录时,所有引用 Orders 表中的记录的订单也将被自动删除,反之亦然。
但需要注意的是,为了提高性能,数据类型必须一致,产品ID列必须是主键或唯一键。

我们还发现不同的数据库系统的语法可能略有不同。
所以使用前请先查看文档。
这就是本周的项目任务。
尽力而为吧。
顺便说一句,在设置外键的时候,我想还是要注意一下子表中的外键列不能为NULL,所以我添加了NOTNULL选项。
算了,不用再说了,你只要明白就行了。

sql server如何添加外键

结论:在SQL Server中,添加外键的步骤如下: 1 、创建两个表。
2 . 右键单击​​表并选择“关系”。
3 . 设置外键对应的字段。
4 . 完成后,关系界面将显示外键约束。

SQL Server中建立外键的方法

你好,你问我有关在 SQL Server 中创建外键的问题,对吧?好吧,我给你总结一下。
当我上次向团队讲述这一点时,我进行了相当详细的总结。

想一想,上次在北京做项目的时候,给客户关联订单的时候,差点因为外键的原因出错。
有两个关键点:外键列必须与主键列的类型完全相同,并且必须是唯一的,可以是主键,也可以是具有 UNIQUE 约束的列。
这是一个严格的要求,不能超过。

至于具体步骤,我就告诉你我常用的:
1 .首先验证表结构。
例如,您有一张客户表Customers,主键是CustomerID,并且这一列是整个表中唯一的一列。
您需要向 Orders 表添加一个外键以指向它。
此时,您需要确保Orders表中的CustomerID列的数据类型与Customers表中的CustomerID列的数据类型完全相同,例如都是INT。
2 . 打开关系设置界面。
这个操作是比较固定的。
您可以单击订单表中的任意列,然后右键单击并选择[关系]。
您将看到一个专门用于管理外键的窗口。
3 .添加外键约束。
在关系窗口中,单击[添加]按钮。
然后点击【表和列规格】旁边的小按钮,进入详细配置。
4 、配置主子表关联。
这里的要点: 主键表选择:在弹出的对话框中,找到父表Customers,然后选择其主键列CustomerID。
外键表选择:接下来,找到 Orders 子表,然后选择要映射的 CustomerID 列。
注意两个客户ID的数据类型必须一致,否则会显示错误,无法创建。
5 . 保存外键关系。
配置完成后,单击“确定”,将返回到关系窗口。
再次单击[关闭]。
如果要添加更多外键,请重复“添加-配置-保存”过程。
6 . 确认结果。
您可以在订单表中右键单击,选择【关系】,查看是否已添加外键。
可以看到一条记录,订单的客户ID与客户的客户ID有关联。

哦,顺便告诉你一些你应该注意的事情。
这是上次的坑。
数据类型必须完全一致。
例如,您不能将 Customers.CustomerID 设为 INT,将 Orders.CustomerID 设为 NVARCHAR(1 0)。
即使里面存的都是数字,也是不行的。
这是 SQL Server 的硬性规定。

此外,外键主要用于维护数据一致性并防止您意外删除 Customers 表中的记录。
因此,Orders 表中仍然有指向它的订单。
如果您想在删除客户时自动删除订单中的相关项(级联删除),请在【关系】窗口中点击【删除规则】,并在创建外键时选择【级联】。
如果不勾选,则默认拒绝删除,删除客户时会报错。

我从2 008 R2 到2 01 9 都尝试过,这个方法是通用的。
如果您尝试按照这些步骤操作,通常不会有任何问题。
如果这不起作用,请检查数据类型是否不一致或其他原因。

SQL外键约束如何添加 外键约束添加的4个步骤

要添加外键约束,必须首先定义表关系。
父表有主键,子表有外键。
例如,users表是父表,orders表是子表,因为orders必须与users关联。

外键字段是子表中引用父表主键的字段。
例如,订单表的user_id字段引用用户表的id字段。

使用ALTER TABLE语句添加外键,如: sql ALTER 订单 ADD TABLE 约束 fk_orders_user_id FOREIGN KEY (user_id) REFERENCES user (id);
只需在 MySQL Workbench 或 Navicat 中执行即可。
添加外键后,数据库自动防止数据意外插入。
例如,不可能将订单与不存在的用户关联。

外键主要保证数据不混乱,比如删除订单时自动删除相关记录。
ON DELETE CASCADE 有这个效果。

插入数据时,如果父表主键不存在,会报错。
ON UPDATE CASCADE 意味着父表的主键被更改,子表的外键也被更改。

如果存在循环依赖,例如A表引用B表,B表引用A表,可以逐步添加外键或者使用中间表来解决。

优点是查询速度快,数据可靠。
缺点是插入更新有点慢。
称一下体重。