Câu trả lời:
ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName);
Đối với MySQL 5.7.4 trở lên:
ALTER TABLE mytbl ADD UNIQUE (columnName);
Kể từ MySQL 5.7.4, mệnh đề IGNORE cho ALTER TABLE bị xóa và việc sử dụng nó tạo ra lỗi.
Vì vậy, hãy đảm bảo xóa các mục trùng lặp trước vì từ khóa IGNORE không còn được hỗ trợ.
ALTER
thực hiện điều này.
ALTER IGNORE
vẫn có thể đưa ra lỗi trùng lặp trên phiên bản MySQL> 5.5 và trên InnoDB vì mục đích an toàn cho dữ liệu của bạn. Nếu bạn chắc chắn rằng việc giữ hàng đầu tiên trong các hàng trùng lặp là điều đúng đắn, hãy thử set session old_alter_table=1
. Đừng quên đặt lại. mysqlolyk.wordpress.com/2012/02/18/ từ
Chỉ cần viết truy vấn này trong db phpmyadmin của bạn.
ALTER TABLE TableName ADD UNIQUE (FieldName)
Ví dụ: ALTER TABLE user ADD UNIQUE (email)
Nếu bạn cũng muốn đặt tên cho ràng buộc, hãy sử dụng:
ALTER TABLE myTable
ADD CONSTRAINT constraintName
UNIQUE (columnName);
CREATE UNIQUE INDEX foo ON table_name (field_name)
Bạn phải xóa các giá trị trùng lặp trên cột đó trước khi thực hiện sql đó. Bất kỳ giá trị trùng lặp hiện có nào trên cột đó sẽ dẫn bạn đến lỗi mysql 1062
ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName);
là câu trả lời đúng
phần chèn
INSERT IGNORE INTO mytable ....
Mã này là để giải quyết vấn đề của chúng tôi để đặt khóa duy nhất cho bảng hiện có
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.
Tài liệu