约束命名的目的是什么

2023-12-10

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

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

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)

With:

    CONSTRAINT Order_PK PRIMARY KEY(LoginName, OrderDateTime)

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


这是一些非常基本的原因。

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

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

(3) 如果支持你的代码的人(又名 DBA)不得不在周日凌晨 3 点浪费大量无意义的时间来处理案例 (1) 或案例 (2),那么他们很可能会识别代码的来源并能够做出相应的反应。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

约束命名的目的是什么 的相关文章

  • 高级 MySQL:查找民意调查响应之间的相关性

    我有四个 MySQL 表 users 身份证号 姓名 polls ID 文本 options id poll id 文本 回应 id poll id 选项 id 用户 id 给定一个特定的民意调查和一个特定的选项 我想生成一个表格 显示其他
  • SQL IN 子句比单个查询慢

    我正在使用 Hibernate 的 JPA 实现和 MySQL 5 0 67 MySQL 配置为使用 InnoDB 在执行 JPA 查询 转换为 SQL 时 我发现使用IN子句比执行单个查询慢 例子 SELECT p FROM Person
  • c3p0 连接检查

    我第一次尝试使用 c3p0 实现解决方案 我了解如何初始化连接池并从池中 签出 连接 如下所示 ComboPooledDataSource cpds new ComboPooledDataSource cpds setDriverClass
  • InnoDB vs. MyISAM 插入查询时间

    我有一个大型 MySQL 表 约 1000 万行 6 5G 用于读取和写入 它是MyISAM 由于MyISAM 的所有表写入锁 我获得了很多锁 我决定尝试迁移到 InnoDB 推荐用于读 写表 它只锁定写入时的特定行 转换后 我测试了插入语
  • 执行计划中是否考虑了功能?

    当查询在 SELECT 或 WHERE 子句中包含 PL SQL 函数 用户定义函数 时 如何生成执行计划 它是否也计算这些函数的成本并将其显示在执行计划中 或者这些函数只是被忽略 在此先感谢您的帮助 用户生成的函数在 SELECT 或 W
  • 将记录与另一个表上的最新记录连接

    我正在尝试创建一个 SQL 视图 我如何从一个表中选择最新的记录 而其他记录保持原样 我需要从所有表中选择所有记录 这工作正常 但我需要仅按日期选择最新的提案 这是我遇到的问题 这是我到目前为止所拥有的 SELECT TOP 100 PER
  • 半透明数据库

    我正在构建一个包含健康信息的应用程序 这个面向消费者的应用程序对我来说是新的 我想要一种方法来完全消除隐私问题 当我回顾保护可公开访问的数据库中的敏感数据的方法时 我经常遇到数据库半透明的概念 有原书 http www wayner org
  • SQL查询3个表,无法得到所需的结果

    列出所有已售出的作品以及艺术家 订购日期和发货日期 SELECT title artist order date ship date FROM items orders orderline WHERE orders order id ord
  • 在数据库中有效存储商品位置(用于订购)

    设想 有一个用户拥有的电影数据库 电影显示在一个名为 我的电影 的页面上 电影可以按照用户想要的顺序显示 例如 位置 1 为 搏击俱乐部 位置 3 为 Drive 依此类推 显而易见的解决方案是存储每个项目的位置 例如 电影 ID 用户 I
  • Oracle 函数编译成功,但在执行 PLS-00221 时抛出错误:不是过程或未定义

    我有简单的oracle功能 create or replace function abs test func test in in number return number is test out number BEGIN test out
  • SQL Server到Mysql迁移(使用Mysql Workbench)数据传输错误

    我正在使用 Mysql Work bench 6 3 将数据库从 MS Sql server 2008 迁移到 Mysql 在 批量数据传输 期间出错并出现以下警告 这种情况仅发生在像 varchar char 这样的列类型上 当我尝试使用
  • LINQ-to-SQL 是否支持组合查询?

    作为一名不懂 C 的程序员 我对 LINQ 查询的求值语义很好奇 如下所示 var people from p in Person where p age lt 18 select p var otherPeople from p in p
  • 如何从表中选择层次结构中的最低级别

    我有一个具有父 子关系的表 Table A Column Id int Column Parent Id int Column Description text 一组示例数据如下 999 NULL Corp 998 999 Div1 997
  • SQL COUNT(*) 返回错误答案

    以下脚本应返回部门名称以及这些部门中的员工人数 营销 行政和销售部门有 0 名员工 但返回值不是 0 而是 1 我怎样才能纠正它 select Department Departments DepartmentID count as Num
  • 在带有循环引用的表中插入 SQL

    我有 2 张桌子 Empleados numEmpl nombre apellido sexo telefono salario numDept Departamentos numDept nombreDept numDirect 在部门中
  • 根据 SQL 查询的集合生成成员的“散点图”结果

    我有一个staff包含工作人员的数据库表 其中user no and user name列 我还有一个 department 包含员工可以加入的部门的表 其中dept no and dept name作为列 因为员工可以是多个部门的成员 所
  • 使用 GROUP 和 SUM 的 LINQ 查询

    请帮助我了解如何使用带有 GROUP 和 SUM 的 LINQ 进行查询 Query the database IEnumerable
  • 我的数据库有错误

    创建表时如下 create table Ticket ticket id integer not null primary key AirlineName varchar not null CustomerName varchar from
  • SQL Server XQuery 返回错误

    我正在 SQL Server 2012 中对 XML 数据类型列执行查询 数据示例如下
  • Microsoft SQL 数据库的 WebSocket 侦听器

    我目前正在开发一个项目 该项目必须使用 WebSockets 作为将数据传输到客户端的方式 基础设施看起来像这样 客户端 gt Web 服务器 gt Microsoft SQL 数据库 我想最理想的情况应该是这样的 客户端打开一个到服务器的

随机推荐

  • 如何打印未读答案中的邮件正文和主题?

    我想获取收件箱中未读邮件的邮件主题和正文 我想一次阅读一封未读邮件并将其标记为read然后 我需要subject 发件人地址 and 邮件正文 下面的代码显示了所有未读邮件的邮件 ID require once mail3 php ews
  • Javascript 函数不等待 AJAX 响应

    我有一个名为的 AJAX 函数flagIt 它是从另一个名为的函数中调用的validateForm validateForm 在提交时执行 function validateForm var error do stuff to valida
  • 如何避免 spring-boot-admin 中的证书验证?

    如何避免 spring boot admin 中的证书验证 链接错误图片 https ibb co fkZu8y 我配置 RestTemplate 以避免在类中使用证书 但我不知道如何发送它 我猜它必须在客户端中 spring boot a
  • python 刷新/重新加载

    这是一个非常基本的问题 但我无法通过在线搜索找到答案 我正在使用 python 来控制 ArcGIS 并且我有一个简单的 python 脚本 它调用一些预先编写的代码 但是 当我对预先编写的代码进行更改时 它似乎不会导致任何更改 我导入这个
  • 通过 USB 将文件从 PC 传输到 Android 设备

    我想以编程方式通过 USB 将文件从我的电脑的特定端口传输到 Android 设备 以下哪种技术最适合这种传输模式 Sockets HttpUrlConnection 如果可以通过HttpUrlConnection意思是如何实现这个 通过
  • JavaFX自动滚动自动更新文本

    关于 JavaFX 的新手问题 我无法回答 尽管我知道它一定非常简单 而且在我看过的任何地方都没有找到任何资源 教程 许多 Oracle 在线文档 文章 以及知名JavaFX博主等 我正在开发一个命令行 脚本 运行的应用程序 并且我已经成功
  • constexpr 静态数据成员给出未定义的引用错误

    我正在开发内核 我想创建我的静态数据成员constexpr所以我可以在一个enum class 但是 如果我这样做 我会收到未定义的参考错误 只有当我将其设置为非 constexpr 并在类之外对其进行初始化时 它似乎才起作用 Workin
  • 如何使用其他 webcontroller odoo 9.0 更改 odoo 的默认页面

    我创建了一个具有特定功能的新 Web 控制器 我希望将此 Web 控制器作为odoo 9 0 我试过把 http route type http auth public website True in main py我的自定义 webcon
  • 链接 LLVM 导致 gcov 失败

    Passing coverage到 gcc 同时链接 LLVM 会导致undefined reference to gcov exit 来自链接器的错误 我已经建立了一个新项目来尝试解决这个问题 你可以查看github上的源码 and 检查
  • Vue.Js - Firebase 函数不能在组件上使用

    我正在使用 Vue Resource 将数据从我的网络应用程序发布到 firebase 但是后来 我发现我需要使用 firebase 集成来上传 firebase 存储中的图像 所以我将它集成到我的 src main js 中 import
  • 在 Sublime Text 2 中显示所有可能的 CSS 值的包?

    通过基本的 Sublime Text 2 构建 我获得了 CSS 值自动完成功能only当我输入值的第一个字母时 如下图所示 不过 我一直在观看 Tuts HTML CSS 网络教程 这是一个示例视频 他的 Sublime Text 构建显
  • 将 MongoDB 查询转换为 Spring MongoDB 语法

    您好 我无法将以下 mongoDB 查询转换为 spring 查询 我尝试了多种方法 但没有得到结果 db getCollection FarmerCropDataLog aggregate match cropData crop RICE
  • JSDoc 中对象中任意键的值的文档结构

    我有一个函数factory function factory events for const key in events const before after events key 论点在哪里events通常是 only before a
  • 从 Java 将多个 PDF 作为单个打印作业打印(物理打印)

    我想在一个打印作业中从java 使用java打印服务 打印多个pdf 我想将多个 pdf 文件作为单个作业发送到打印机 这样 我的 批量 中的所有文档都会一起打印 并且当我从打印机中取出它们时 不会与其他人的打印作业交错 一个批次可能包含数
  • 如何使用 JavaFX TableView 显示基于列的数据集

    我正在尝试从 Swing 切换到 JavaFX 但 TableView 出现问题 我在内存中有一个基于列的通用数据结构 例如List
  • Apple 在 AppStore 中接受的最低 iOS 目标版本?

    我有一个应用程序 我希望在所有 iOS 版本上运行 但我认为 Apple 只接受某个版本及更高版本的应用程序 我认为是 3 0 但不确定 所以我的问题是 您可以发送审核 并获得接受 的最低 iOS 目标版本是多少 如果任何具有丰富 iOS
  • codeigniter 无法在实时页面上工作,在服务器上找不到错误

    我的 codeigniter 在本地主机上完美工作 但在 live 上无法工作 我的 codeigniter 是最新版本 我也尝试较旧的版本 它总是显示在重定向上找不到的页面 routes php 设置是 route default con
  • C++:构造和初始化顺序保证

    我对 C 中的构造和初始化顺序保证有一些疑问 例如 下面的代码有四个类X Y Z and W main函数实例化一个对象class X 其中包含一个对象class Y 并且源自class Z 因此两个构造函数都会被调用 此外 const c
  • 如何优化这些循环(禁用编译器优化)?

    我需要优化一些for在不使用编译器优化标志的情况下循环提高速度 用于学校作业 给定一个特定的Linux服务器 学校拥有的 一个令人满意的改进是使其运行时间低于7秒 一个很大的改进是使其运行时间低于5秒 我这里的这段代码大约需要 5 6 秒
  • 约束命名的目的是什么

    命名约束 唯一 主键 外键 的目的是什么 假设我有一个使用自然键作为主键的表 CREATE TABLE Order LoginName VARCHAR 50 NOT NULL ProductName VARCHAR 50 NOT NULL