栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

结合两个查询来检查MySQL中的重复项?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

结合两个查询来检查MySQL中的重复项?

您的问题实际上有两个问题。第一个问题是使

Number
列唯一,第二个问题是
Name
通过添加数字(如果已经存在)来增加列。

第一部分

由于数字为

UNIQUE
,因此
UNIQUE
对列实施约束。可能是a
PRIMARY KEY
或a
UNIQUE KEY

如果该列没有,

KEY
而您想创建该列
PRIMARY
,则
ALTER
语句如下:

ALTER TABLE TableName ADD ConSTRAINT tb_pk PRIMARY KEY (Number)
  • SQLFiddle演示

但是如果您只希望它

UNIQUE
成为主键而不是主键,

ALTER TABLE TableName ADD ConSTRAINT tb_uq UNIQUE (Number)
  • SQLFiddle演示

第二部分

实际上,您可以不使用join来执行此操作。

INSERT INTO TableName(Number, Name)SELECt  124 AS Number,         CONCAt('Robert', COALESCE(MAX(CAST(REPLACE(Name, 'Robert', '0') AS UNSIGNED)) + 1,'')) AS NameFROM    TableNameWHERe   Name LIKE 'Robert%'
  • SQLFiddle演示
  • SQLFiddle演示( 添加了更多示例
  • SQLFiddle演示( 由于唯一性而引发异常

一些细节:

当列上提供的值

Number
已经存在时,由于列是唯一的,因此将引发错误。我从已删除的帖子中读到一条评论,上面写着:
..数字不是唯一的,但如果确实存在,则我不想输入记录。”
-如果您不想在列上添加 唯一性
,则没有任何意义。您怎么知道这个号码是否已经存在?对
Number
感觉的存在进行一点检查对我来说有点像是开销。因此,我最好的建议是强制执行唯一性。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/410912.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号