Saya memiliki tabel yang sudah ada dengan bidang yang harus unik tetapi tidak. Saya hanya tahu ini karena entri dibuat ke tabel yang memiliki nilai yang sama dengan entri lain, sudah ada, dan ini menyebabkan masalah.
Bagaimana cara membuat bidang ini hanya menerima nilai unik?
mysql
unique-constraint
Lothar
sumber
sumber
If IGNORE is specified, only the first row is used of rows with duplicates on a unique key, The other conflicting rows are deleted.
DocumentsALTER
menyelesaikannya.ALTER IGNORE
mungkin masih memberikan kesalahan Duplikat pada versi MySQL> 5.5 dan pada InnoDB demi keamanan data Anda. Jika Anda yakin bahwa menjaga baris pertama dari duplikat adalah hal yang benar, cobalahset session old_alter_table=1
. Jangan lupa untuk mengaturnya kembali. mysqlolyk.wordpress.com/2012/02/18/…Tulis saja permintaan ini di phpmyadmin db Anda.
Misalnya:
ALTER TABLE user ADD UNIQUE (email)
sumber
Jika Anda juga ingin memberi nama batasan, gunakan ini:
sumber
CREATE UNIQUE INDEX foo ON table_name (field_name)
Anda harus menghapus nilai duplikat pada kolom itu sebelum mengeksekusi sql itu. Nilai duplikat apa pun yang ada pada kolom itu akan membawa Anda ke kesalahan mysql 1062
sumber
Cara termudah dan tercepat adalah dengan tabel struktur phpmyadmin.
Itu ada dalam bahasa Rusia tetapi dalam versi bahasa Inggris harus sama. Cukup klik tombol Unik. Dari sana Anda juga dapat membuat kolom Anda PRIMARY atau DELETE.
sumber
adalah jawaban yang tepat
bagian sisipan
sumber
Kode ini adalah untuk memecahkan masalah kita untuk mengatur kunci unik untuk tabel yang ada
sumber