gpt4 book ai didi

sql - 约束命名的目的是什么

转载 作者:太空狗 更新时间:2023-10-30 01:38:07 24 4
gpt4 key购买 nike

命名约束的目的是什么(唯一、主键、外键)?

假设我有一个使用自然键作为主键的表:

CREATE TABLE Order
(
LoginName VARCHAR(50) NOT NULL,
ProductName VARCHAR(50) NOT NULL,
NumberOrdered INT NOT NULL,
OrderDateTime DATETIME NOT NULL,
PRIMARY KEY(LoginName, OrderDateTime)
);

命名我的 PK 会带来什么好处(如果有的话)?

例如。替换:

    PRIMARY KEY(LoginName, OrderDateTime)

与:

    CONSTRAINT Order_PK PRIMARY KEY(LoginName, OrderDateTime)

抱歉,如果我的数据模型不是最好的,我是新手!

最佳答案

这里有一些非常基本的原因。

(1) 如果查询(插入、更新、删除)违反了约束,SQL 将生成一条错误消息,其中将包含约束名称。如果约束名称清晰且具有描述性,则错误消息将更容易理解;如果约束名称是随机的基于 guid 的名称,则不太清楚。特别是对于最终用户,他们会(好吧,可能)调用你并询问“FK__B__B_COL1__75435199”是什么意思。

(2) 如果将来需要修改一个约束(是的,它发生了),如果你不知道它的名字是很难做到的。 (ALTER TABLE MyTable drop CONSTRAINT um...)如果您“从头开始”创建多个数据库实例并使用系统生成的默认名称,则没有两个名称会匹配。

(3) 如果在周日凌晨 3 点为您的代码提供支持的人(又名 DBA)不得不浪费大量无意义的时间来处理案例 (1) 或案例 (2),他们很可能在一个位置来识别代码的来源并能够做出相应的 react 。

关于sql - 约束命名的目的是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1397440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com