Yanıtlar:
ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName);
MySQL 5.7.4 veya üstü için:
ALTER TABLE mytbl ADD UNIQUE (columnName);
MySQL 5.7.4'ten itibaren ALTER TABLE için IGNORE yan tümcesi kaldırılır ve kullanımı bir hata oluşturur.
Bu nedenle, IGNORE anahtar sözcüğü artık desteklenmediğinden, önce yinelenen girişleri kaldırdığınızdan emin olun.
ALTER
.
ALTER IGNORE
yine de MySQL sürüm> 5.5 ve InnoDB'de verilerinizin güvenliği için Yinelenen hata verebilir. Çoğaltılan satırlardan ilkini tutmanın doğru şey olduğundan eminseniz, deneyin set session old_alter_table=1
. Geri koymayı unutma. mysqlolyk.wordpress.com/2012/02/18/…
Bu sorguyu db phpmyadmin'inize yazmanız yeterlidir.
ALTER TABLE TableName ADD UNIQUE (FieldName)
Örneğin: ALTER TABLE user ADD UNIQUE (email)
Kısıtlamayı da adlandırmak istiyorsanız, bunu kullanın:
ALTER TABLE myTable
ADD CONSTRAINT constraintName
UNIQUE (columnName);
CREATE UNIQUE INDEX foo ON table_name (field_name)
Söz konusu sql yürütülmeden önce o sütundaki yinelenen değerleri kaldırmanız gerekir. Bu sütunda varolan herhangi bir yinelenen değer, mysql hatası 1062'ye yol açacaktır
ALTER IGNORE TABLE mytbl ADD UNIQUE (columnName);
doğru cevap mı
ekleme parçası
INSERT IGNORE INTO mytable ....
Bu kod, mevcut tablo için benzersiz anahtar ayarlamak için sorunumuzu çözmek içindir
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.
Dokümanlar