ฉันมีตารางที่มีอยู่แล้วพร้อมกับเขตข้อมูลที่ควรไม่ซ้ำกัน แต่ไม่ใช่ ฉันรู้เรื่องนี้เพียงเพราะมีการป้อนข้อมูลลงในตารางที่มีค่าเหมือนกันกับรายการอื่นที่มีอยู่แล้วรายการและสิ่งนี้ทำให้เกิดปัญหา
ฉันจะทำให้ฟิลด์นี้ยอมรับค่าที่ไม่ซ้ำได้อย่างไร
ฉันมีตารางที่มีอยู่แล้วพร้อมกับเขตข้อมูลที่ควรไม่ซ้ำกัน แต่ไม่ใช่ ฉันรู้เรื่องนี้เพียงเพราะมีการป้อนข้อมูลลงในตารางที่มีค่าเหมือนกันกับรายการอื่นที่มีอยู่แล้วรายการและสิ่งนี้ทำให้เกิดปัญหา
ฉันจะทำให้ฟิลด์นี้ยอมรับค่าที่ไม่ซ้ำได้อย่างไร
คำตอบ:
ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName);
สำหรับ MySQL 5.7.4 หรือใหม่กว่า:
ALTER TABLE mytbl ADD UNIQUE (columnName);
ในฐานะของ MySQL 5.7.4 ส่วนคำสั่ง IGNORE สำหรับ ALTER TABLE จะถูกลบออกและการใช้งานจะทำให้เกิดข้อผิดพลาด
ดังนั้นตรวจสอบให้แน่ใจว่าได้ลบรายการที่ซ้ำกันออกก่อนเนื่องจากไม่สนับสนุนคำหลัก IGNORE อีกต่อไป
ALTER
จะทำสิ่งนี้ให้สำเร็จ
ALTER IGNORE
อาจยังให้ข้อผิดพลาดซ้ำในรุ่น MySQL> 5.5 และใน InnoDB เพื่อความปลอดภัยของข้อมูลของคุณ set session old_alter_table=1
ถ้าคุณเป็นเพียงให้แน่ใจว่าการรักษาครั้งแรกของแถวที่ซ้ำกันเป็นสิ่งที่ถูกต้องลอง อย่าลืมตั้งกลับ mysqlolyk.wordpress.com/2012/02/18/…
เพียงเขียนแบบสอบถามนี้ใน db phpmyadmin ของคุณ
ALTER TABLE TableName ADD UNIQUE (FieldName)
เช่น: ALTER TABLE user ADD UNIQUE (email)
หากคุณต้องการตั้งชื่อข้อ จำกัด ให้ใช้สิ่งนี้:
ALTER TABLE myTable
ADD CONSTRAINT constraintName
UNIQUE (columnName);
CREATE UNIQUE INDEX foo ON table_name (field_name)
คุณต้องลบค่าที่ซ้ำกันในคอลัมน์นั้นก่อนดำเนินการ sql นั้น ค่าซ้ำที่มีอยู่ในคอลัมน์นั้นจะนำคุณไปสู่ข้อผิดพลาด mysql 1062
วิธีที่ง่ายและเร็วที่สุดคือตาราง phpmyadmin
มีเป็นภาษารัสเซีย แต่ในเวอร์ชั่นภาษาอังกฤษควรเหมือนกัน เพียงคลิกปุ่มที่ไม่ซ้ำ นอกจากนี้คุณยังสามารถสร้างคอลัมน์หลักหรือลบได้อีกด้วย
ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName);
เป็นคำตอบที่ถูก
ส่วนแทรก
INSERT IGNORE INTO mytable ....
รหัสนี้คือการแก้ปัญหาของเราในการตั้งค่าคีย์เฉพาะสำหรับตารางที่มีอยู่
alter ignore table ioni_groups add unique (group_name);
If IGNORE is specified, only the first row is used of rows with duplicates on a unique key, The other conflicting rows are deleted.
เอกสาร