微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – 如何为MySQL中包含记录的现有表创建唯一索引

在这里,我想解释一下我的问题,

我需要在现有表中创建唯一索引,该表包含许多记录.

我试着执行这段代码

CREATE UNIQUE INDEX empid_name ON employee (importcompany_id,employee_id,name,relationship);

但我得到的错误

#1062 - Duplicata du champ '0-Emp ID-Member Name-Relationship' pour la clef 'empid_name'

帮我解决这个问题,我需要让字段独一无二

更新 :

设置这些字段唯一的原因是

其实我有一张这样的桌子

id  company_ID  Employee_ID Name        Relationship    dob     Age Gender       
1   EMPL        00001       Choodamani  Spouse      11-Aug-66   49  Female            
2   EMPL        00001       Komala      Mother      30-Oct-39   76  Female            
3   EMPL        00001       Varshini    Daughter    29-Apr-04   11  Female            
4   EMPL        00001       Vasudevan   Employee    15-Jul-62   53  Male    
5   EMPL        00002       Siddharth   Son         1-Jun-00    15  Male              
6   EMPL        00002       Poongavanam Mother      21-Oct-39   76  Female            
7   EMPL        00002       Aruna       Spouse      16-Sep-68   47  Female            
8   EMPL        00002       Abirami     Daughter    7-May-97    18  Female            
9   EMPL        00002       Murali      Employee    7-Oct-67    48  Male

如果要插入这样的数据,

id  company_ID  Employee_ID Name        Relationship    dob     Age Gender       
    1   EMPL        00001       Choodamani  Spouse      11-Aug-70   45  Female            
    2   EMPL        00001       Nirmal      Son      30-Oct-39   76  Female

此插入或更新是通过使用Excel工作表导入完成的

>如果要在列员工表上使用唯一索引empid_name ON(importcompany_id,relationship).然后,您必须删除现有的重复数据.

简单的方法是在4列上添加UNIQUE索引.编写ALTER语句时,请包含IGnorE关键字.像这样:

ALTER IGnorE TABLE `employee` ADD UNIQUE INDEX(importcompany_id,relationship);

这将删除所有重复的行.作为一个额外的好处,未来的重复INSERT将会出错.与往常一样,您可能希望在运行此类内容之前进行备份.

>或者在表格中添加主键,然后您可以轻松地从表格中删除重复项.然后添加唯一索引.

原文地址:https://www.jb51.cc/php/134448.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐