MySQL UNIQUE – 设置列为唯一
学习如何使用MySQL脚本模板将列设置为UNIQUE,防止重复值,并在表视图中直接识别UNIQUE列。
教程的目标
你将学习如何在bluetronix CMS中将数据库列明确设置为UNIQUE。这样,这一列中相同的值不能重复保存。
这在某些情况下是有意义的,例如在一个表中,电子邮件地址、电话号码或客户编号每项只能出现一次。
没有UNIQUE的初始状态
在我们的示例中,我们使用了包含ID、电话和姓名列的Contacts表。电话号码+49 263 43628376已经在数据集中Smith中存在。
只要列Phone未设置为UNIQUE,就可以再次输入相同的电话号码。
保存后,额外的数据集就存在了。这样,电话号码在Phone列中出现了多次。
将列清晰地设置为UNIQUE
打开MySQL - Script,并选择模板将表列设置为唯一(UNIQUE)。然后,调整命令以适应你的表和所需列。
对于Contacts表和Phone列,示例中使用的命令如下:
ALTER TABLE Contacts ADD CONSTRAINT unique_user UNIQUE (Phone);
执行后,CMS在MySql信息下确认命令成功执行。这样,Phone列就被设置为UNIQUE。
再次测试重复值
现在再次尝试将已经存在的电话号码+49 263 43628376作为新记录进行保存。
由于列现在是UNIQUE,相同的值不能再次保存。因此,保存时会拒绝重复条目,并出现错误。
重要: UNIQUE直接阻止数据库层的重复值,因此,已经在唯一列中的值不能再次保存。
在CMS中识别UNIQUE列
在表视图中,你可以用鼠标悬停在相关列上。对于UNIQUE列,CMS会显示提示,表明该列中的每个条目只能出现一次。
典型的使用场景
UNIQUE适用于某些信息不应在同一列中重复的情况。典型示例包括:
- E-Mail-Adressen bei einem Newsletter
- Telefon- oder Handynummern
- Kundennummern
这样可以在数据库层面防止同一唯一值被多次存储。
总结
通过模板设置表列为唯一(UNIQUE),可以将一列设置为每个值只能出现一次。在示例中,将Contacts表的Phone列设置为UNIQUE。之后,再次保存相同的电话号码时将被拒绝。在表视图中,CMS会在相关列上显示相应的UNIQUE提示。
常见问题
客户常问我们的问题
UNIQUE在数据库列中是什么意思?
UNIQUE意味着在该列中同一个值不能被多次存储。
我可以在哪里使用UNIQUE?
UNIQUE适用于那些只应出现一次的值,例如电子邮件地址、电话号码或客户编号。
我可以在哪里在bluetronix CMS中将一列设置为UNIQUE?
打开MySQL - 脚本,并在这里使用模板设置表列为唯一(UNIQUE)。
示例中使用了什么MySQL命令?
在教程中使用的是ALTER TABLE Contacts ADD CONSTRAINT unique_user UNIQUE (Phone);。
示例中使用了哪个表?
示例中使用了包含ID、Phone和Name列的Contacts表。
示例中哪个列被设置为UNIQUE?
Phone列被设置为UNIQUE。
如果没有UNIQUE,重复值会发生什么?
在图示示例中,没有UNIQUE时相同的电话号码可以再次被存储。
设置UNIQUE后,重复值会发生什么?
重复值在保存时会被拒绝,并出现错误。
我在CMS中如何识别UNIQUE列?
当你将鼠标悬停在相关列上时,CMS会显示提示,说明该列中的每个条目只能出现一次。
我可以为新闻通讯的电子邮件地址使用UNIQUE吗?
可以。这样可以防止相同的电子邮件地址多次存储在相关列中。
我可以为电话号码使用UNIQUE吗?
可以。在教程中,正是这个用例使用了Phone列。
我可以为客户编号使用UNIQUE吗?
是的。如果每个客户编号只能出现一次,UNIQUE是合适的选择。
为什么UNIQUE是有意义的?
UNIQUE可以直接在数据库层面防止重复的唯一值,从而帮助避免相关列中的重复条目。