sql - 约束后uc有什么用?

标签 sql

CREATE TABLE Persons
(
P_Id int NOT NULL,
LastName varchar(255) NOT NULL,
FirstName varchar(255),
Address varchar(255),
City varchar(255),
CONSTRAINT **uc**_PersonID UNIQUE (P_Id,LastName)
)

最佳答案

命名约束绝对是一个好习惯(否则 SQL Server 将使用随机名称命名它们,这使得使用通用升级脚本升级多个系统变得非常困难)。

最好使用前缀来查看这是什么类型的约束。

常见的是

  • UQ、UC 或 UK 用于唯一约束/唯一键
  • 外键外键
  • 主键的PK
  • CK 用于 CHECK 约束

更新

并且将表的名称添加到约束中是一种很好的做法(以避免歧义)。在您的情况下,这是:

CONSTRAINT uc_Persons_PersonID UNIQUE (P_Id,LastName)

顺便说一句(命名约定):使用单数形式的表名很常见(Person 而不是 Persons)。在这里阅读:Table Naming Dilemma: Singular vs. Plural Names

关于sql - 约束后uc有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36933936/

相关文章:

sql - 删除 ON DELETE CASCADE

mysql - 如何为不同的 GROUP BY 编写具有多个 COUNT 的 SQL 查询?

java - 如何从jTable中删除数据库中的数据?

sql - SQL Server 数据库 'optimizing' 索引的奇怪结果,原因是什么?

mysql - 如何从同一个表中的父子订单的 mysql 订单中获取记录

sql - 如果查询没有返回结果,则返回错误

mysql - 如何根据条件检索所有记录

mysql - SQL选择与给定列的多个单词匹配的记录

sql - 存储过程(删除发票)

mysql - 一次查询多项数据校验