我对编程很陌生。我的问题是,如果您有一个不唯一的主键(我知道此时它不再是主键),那么返回什么?返回多个记录吗?
EmployeeID HoursWorked
01 100
01 120
02 75
02 115
03 140
03 80
例如,如果您编写一个查询来搜索01
的员工ID,那么将返回什么?
再说一遍,我对这一切都很陌生,所以如果这是个愚蠢的问题,请原谅我。
发布于 2017-10-13 03:22:22
如果你做这样的事
SELECT * FROM employees WHERE EmployeeID = 01;
您将得到两行:
EmployeeID HoursWorked
01 100
01 120
但是通常情况下--如果将列设置为主键-- MySQL 将不允许插入没有唯一id的行。
发布于 2017-10-13 02:44:36
如果不使用primary key
,则重复id记录可以是inserted
。
因此,如果要获得01
,它将返回表中的01
id的所有记录,如100 and 120
发布于 2017-10-13 02:56:40
主键的全部目的是防止插入具有相同主键或任何唯一索引的两条记录(行)。这是不可能的,你会犯错误。
因此,如果设置了主键,则如果精确指定所需的值,则select查询将不返回任何内容或返回一行。如果尝试使用已存在的键插入新记录,则会得到一个错误。
您将使用唯一的键进行相同的行为。
https://stackoverflow.com/questions/46727945
复制