Maaf pak, saya sudah mencobanya sebelum mengajukan pertanyaan, tetapi tidak berhasil
Ankur Mukherjee
@Ankur Mukherjee: Saya lupa menyebutkan: Anda harus mengubah tbl_name dan index_name menjadi nama tabel aktual Anda dan nama indeks aktual, masing-masing. Anda dapat melihat nama-nama di MySQL Query Browser. Anda juga bisa melakukannya SHOW CREATE TABLE tbl_name.
Mark Byers
Pesan Kesalahan: "Anda memiliki kesalahan dalam sintaks SQL Anda; periksa manual yang sesuai dengan versi server MySQL Anda untuk sintaks yang tepat untuk digunakan di dekat '(player_id, tahun, turnamen)' di baris 1"
Ankur Mukherjee
1
@Ankur Mukherjee: Cara yang saya sarankan menurut saya adalah cara terbaik untuk melakukannya.
Mark Byers
1
Saya membaca di suatu tempat dalam pertanyaan menggunakan phpMyAdmin ... Jawaban yang diberikan oleh @systemovich harus ditandai sebagai yang diterima.
Pere
123
Anda dapat DROPkendala unik dari tabel menggunakan phpMyAdmin seperti yang diminta seperti yang ditunjukkan pada tabel di bawah ini. Kendala unik telah ditempatkan di bidang Lebar sayap. Nama kendala sama dengan nama bidang, dalam contoh ini.
Penting untuk dicatat bahwa bagian indeks runtuh secara default, dan diperluas oleh tautan kecil dan halus dalam font 12px di mana bagian tersebut di tangkapan layar. Tetapi berkat Anda, saya menemukannya. Berkati wajahmu. +1
Jack
11
Indeks yang mampu menempatkan batasan kunci unik pada tabel adalah PRIMARYdan UNIQUEindeks.
Untuk menghapus batasan kunci unik pada kolom tetapi mempertahankan indeks, Anda bisa menghapus dan membuat ulang indeks dengan tipe INDEX.
Perhatikan bahwa sebaiknya semua tabel memiliki indeks yang ditandai PRIMARY.
Terpilih karena @thomasrutter telah menyentuh fakta bahwa menghapus batasan unik dapat memengaruhi kinerja kueri - dan ini dapat dikurangi dengan mengganti UNIQUEindeks dengan reguler INDEX.
Alex
4
Untuk menambahkan batasan UNIK menggunakan phpmyadmin, pergi ke struktur tabel itu dan temukan di bawah dan klik itu,
Untuk menghapus batasan UNIK, dengan cara yang sama, buka struktur dan gulir ke bawah hingga Tab Indeks dan temukan di bawah lalu klik drop,
Pada MySQL 8.0.19, ALTER TABLE memungkinkan sintaksis yang lebih umum (dan standar SQL) untuk menjatuhkan dan mengubah batasan yang ada dari semua jenis, di mana jenis kendala ditentukan dari nama kendala: ALTER TABLE tbl_name DROP CONSTRAINT symbol;
Contoh:
CREATETABLE tab(id INT,CONSTRAINT unq_tab_id UNIQUE(id));-- checking constraint name if autogeneratedSELECT*FROM INFORMATION_SCHEMA.TABLE_CONSTRAINTS WHERE TABLE_NAME ='tab';-- dropping constraintALTERTABLE tab DROPCONSTRAINT unq_tab_id;
Jawaban:
Batasan unik juga merupakan indeks.
Pertama digunakan
SHOW INDEX FROM tbl_name
untuk mengetahui nama indeks. Nama indeks disimpan di kolom yang disebutkey_name
di hasil permintaan itu.Maka Anda dapat menggunakan DROP INDEX :
atau sintaks ALTER TABLE :
sumber
SHOW CREATE TABLE tbl_name
.Anda dapat
DROP
kendala unik dari tabel menggunakan phpMyAdmin seperti yang diminta seperti yang ditunjukkan pada tabel di bawah ini. Kendala unik telah ditempatkan di bidang Lebar sayap. Nama kendala sama dengan nama bidang, dalam contoh ini.sumber
Indeks yang mampu menempatkan batasan kunci unik pada tabel adalah
PRIMARY
danUNIQUE
indeks.Untuk menghapus batasan kunci unik pada kolom tetapi mempertahankan indeks, Anda bisa menghapus dan membuat ulang indeks dengan tipe
INDEX
.Perhatikan bahwa sebaiknya semua tabel memiliki indeks yang ditandai
PRIMARY
.sumber
UNIQUE
indeks dengan regulerINDEX
.Untuk menambahkan batasan UNIK menggunakan phpmyadmin, pergi ke struktur tabel itu dan temukan di bawah dan klik itu,
Untuk menghapus batasan UNIK, dengan cara yang sama, buka struktur dan gulir ke bawah hingga Tab Indeks dan temukan di bawah lalu klik drop,
Semoga ini berhasil.
Nikmati ;)
sumber
Untuk WAMP 3.0: Klik Struktur Di Bawah Tambahkan 1 Kolom, Anda akan melihat '- Indeks' Klik -Indeks dan letakkan indeks mana pun yang Anda inginkan.
sumber
Jika Anda ingin menghapus batasan unik dari tabel database mysql, gunakan tabel alter dengan indeks jatuh.
Contoh:
buat tabel unique_constraints (unid int, activity_name varchar (100), CONSTRAINT activty_uqniue UNIQUE (activity_name), primary key (unid));
Di mana activty_uqniue adalah kendala UNIQUE untuk kolom activity_name .
sumber
sementara menjatuhkan kunci unik kami menggunakan indeks
sumber
Batasan dapat dihapus dengan sintaks:
Contoh:
db <> demo biola
sumber
nama tabel saya adalah pembeli yang memiliki kolom kendala unik emp_id sekarang saya akan menghapus emp_id
langkah 1: exec sp_helpindex pembeli, lihat file gambar
langkah 2: salin alamat indeks
step3: mengubah batasan drop pembeli tabel [UQ__buyers__1299A860D9793F2E] ubah tabel drop kolom pembeli pembeli emp_id
catatan:
bukannya pembeli mengubahnya ke nama tabel Anda :)
itu semua nama kolom emp_id dengan batasan dijatuhkan!
sumber
Hapus tabel pertama
pergi ke SQL
Gunakan kode ini:
sumber