我使用的是MySQL数据库。
在哪些情况下我应该创建唯一键或主键?
我使用的是MySQL数据库。
在哪些情况下我应该创建唯一键或主键?
当前回答
主键的主要特征是:
它必须为每一行数据包含一个惟一的值。 不能包含空值。 一个表中只能有一个主键。
唯一键的主要特征是:
它还可以为每一行数据包含一个惟一的值。
它也可以包含空值。
一个表中有多个唯一键。
其他回答
主键具有标识数据库行的语义。因此,一个给定的表只能有一个主键,而可以有许多唯一键。
同样的原因,主键不能为NULL(至少在Oracle中,其他数据库就不确定了)
因为它标识了行,所以它永远不应该更改。改变主键一定会造成严重的痛苦,甚至可能是永恒的诅咒。
因此,在大多数情况下,你需要一些人为的id作为主键,它只用于标识表中的单行。
另一方面,唯一键可以随心所欲地更改。
我知道这个问题已经有好几年了,但我想提供一个答案,解释为什么而不是如何
主键的作用:在数据库中唯一地标识一行=>一行表示表建模的实体类型的单个实例。主键强制实体的完整性,即实体完整性。主键将是一个聚集索引,即它定义了数据在表中物理存储的顺序。
Purpose of Unique Key: Ok, with the Primary Key we have a way to uniquely identify a row. But I have a business need such that, another column/a set of columns should have unique values. Well, technically, given that this column(s) is unique, it can be a candidate to enforce entity integrity. But for all we know, this column can contain data originating from an external organization that I may have a doubt about being unique. I may not trust it to provide entity integrity. I just make it a unique key to fulfill my business requirement.
好了!
简单的主键是唯一的,不能为空,唯一的可以为空,也可以不是唯一的。
Think the table name is employe. Primary key Primary key can not accept null values. primary key enforces uniqueness of a column. We can have only one Primary key in a table. Unique key Unique key can accept null values. unique key also enforces uniqueness of a column.you can think if unique key contains null values then why it can be unique ? yes, though it can accept null values it enforces uniqueness of a column. just have a look on the picture.here Emp_ID is primary and Citizen ID is unique. Hope you understand. We can use multiple unique key in a table.
Unique key :- It should be used when you have to give unique value.In the case of unique key it means null values are also allowed.Unique keys are those keys which are unique and non similar in that column like for example your pet name.it can be nothing like null and if you are asking in context of database then it must be noted that every null is different from another null in the database.EXCEPT-SQL Server where null=null is true
主键:— 它应该在必须唯一标识一行时使用。Primary是一个键,它对数据库约束中的每一行都是唯一的,它不允许它为空。你可能看到数据库中有一个列是自动递增的它是表的主键。另外,它可以在另一个表中用作外键。例如订单表中的orderId,账单表中的billId。 现在回到什么情况下使用它:-
1)主键在哪个列可以 在表中不是空,并且在另一个表中用作外键 用于创建关系的表
2)唯一键在表中所在 不影响在表中或在整个数据库中 对于特定列为Null,比如餐馆里的小吃 可能你在餐馆里不带零食