主键不唯一时返回的内容

时间:2017-10-13 10:37:35

标签: mysql

我是编程新手。我的问题是,如果你的主键不是唯一的(我当时理解它不再是主键)那么返回的是什么?是否返回了多条记录?

EmployeeID  HoursWorked
01          100
01          120
02          75
02          115
03          140
03          80

例如,如果您编写查询以搜索员工ID 01,那么会返回什么内容?

同样,我对所有这一切都很陌生,请原谅我,如果这是一个愚蠢的问题。

3 个答案:

答案 0 :(得分:2)

如果您执行类似

的操作
SELECT * FROM employees WHERE EmployeeID = 01;

您将获得两行:

EmployeeID    HoursWorked
01            100
01            120

但通常情况下 - 如果您将列设置为主键 - MySQL 将不允许您插入没有唯一ID的行。

答案 1 :(得分:0)

如果您不使用primary key,那么重复的ID记录可以是inserted

因此,如果您获得01,则会返回01

表格中100 and 120个ID的所有记录

答案 2 :(得分:0)

主要的要点是防止您插入具有相同主键或任何唯一索引的两个记录(行)。你不可能得到一个错误。

因此,如果您设置了主键,那么如果您准确指定了所需的值,则select查询将不返回任何内容或返回一行。如果您尝试使用已存在的密钥插入新记录,则会出现错误。

您将使用唯一键

具有相同的行为