首页 > 数据库 > mysql教程 > 如何为非主键列创建外键?

如何为非主键列创建外键?

Linda Hamilton
发布: 2025-01-15 09:46:43
原创
520 人浏览过

How to Create a Foreign Key to a Non-Primary Key Column?

创建指向非主键的外键

问题:

如何通过创建指向另一表中非主键列的外键来维护引用完整性?

解答:

虽然在创建外键时通常建议引用主键,但在特定条件下,可以创建指向非主键的外键。

解决方案:

要创建指向非主键的外键,被引用表中的目标列必须应用唯一约束。这意味着该列中的值必须唯一,以确保数据完整性。

示例:

考虑以下表结构:

<code class="language-sql">CREATE TABLE table1 (
   ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
   AnotherID INT NOT NULL,
   SomeData VARCHAR(100) NOT NULL
);

CREATE TABLE table2 (
   ID INT NOT NULL IDENTITY(1,1) PRIMARY KEY,
   AnotherID INT NOT NULL,
   MoreData VARCHAR(30) NOT NULL,

   CONSTRAINT fk_table2_table1 FOREIGN KEY (AnotherID) REFERENCES table1 (AnotherID)
);</code>
登录后复制

在此示例中,table1 中的 AnotherID 列不是主键。但是,它具有唯一约束,允许我们使用 AnotherID 列在 table2 和 table1 之间创建外键关系。

替代方法:

如果无法在非主键列上创建唯一约束,请考虑改用被引用表的主键作为外键。这种方法确保更强的数据库完整性,通常建议使用。

以上是如何为非主键列创建外键?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板