Verwenden Sie zuerst SHOW INDEX FROM tbl_name, um den Namen des Index herauszufinden. Der Name des Index wird in der Spalte gespeichert, die key_namein den Ergebnissen dieser Abfrage aufgerufen wird .
Entschuldigung, Sir, ich hatte es versucht, bevor ich die Frage stellte, aber es funktioniert nicht
Ankur Mukherjee
@Ankur Mukherjee: Ich habe vergessen zu erwähnen: Sie müssen tbl_name und index_name in den Namen Ihrer tatsächlichen Tabelle bzw. den Namen des tatsächlichen Index ändern. Sie können die Namen im MySQL Query Browser sehen. Sie können auch tun SHOW CREATE TABLE tbl_name.
Mark Byers
Fehlermeldung: "Sie haben einen Fehler in Ihrer SQL-Syntax. Überprüfen Sie das Handbuch, das Ihrer MySQL-Serverversion entspricht, auf die richtige Syntax für Zeile '(player_id, Jahr, Turnier)' in Zeile 1"
Ankur Mukherjee,
1
@ Ankur Mukherjee: Die Art und Weise, wie ich vorgeschlagen habe, ist meiner Meinung nach der beste Weg, dies zu tun.
Mark Byers
1
Ich habe irgendwo in der Frage mit phpMyAdmin gelesen ... Die Antwort von @systemovich sollte als akzeptiert markiert werden.
Pere
123
Sie können mit phpMyAdminDROP eine eindeutige Einschränkung aus einer Tabelle erstellen, wie in der folgenden Tabelle gezeigt. Für das Wingspan-Feld wurde eine eindeutige Einschränkung festgelegt. Der Name der Einschränkung entspricht in diesem Fall dem Feldnamen.
Es ist wichtig zu beachten, dass der Indexabschnitt standardmäßig reduziert und durch einen kleinen, subtilen Link in 12px-Schriftart erweitert wird, in dem sich der Abschnitt im Screenshot befindet. Aber dank dir habe ich es gefunden. Segne dein Gesicht. +1
Jack
11
Die Indizes, die eine eindeutige Schlüsselbeschränkung für eine Tabelle festlegen können, sind PRIMARYund UNIQUEIndizes.
Um die eindeutige Schlüsselbeschränkung für eine Spalte zu entfernen, aber den Index beizubehalten, können Sie den Index mit dem Typ entfernen und neu erstellen INDEX.
Beachten Sie, dass es für alle Tabellen eine gute Idee ist, einen Index zu markieren PRIMARY.
Upvoted, weil @thomasrutter die Tatsache angesprochen hat, dass das Entfernen einer eindeutigen Einschränkung die Abfrageleistung beeinträchtigen kann - und dies kann durch Ersetzen des UNIQUEIndex durch einen regulären Index gemindert werden INDEX.
Alex
4
Um eine EINZIGARTIGE Einschränkung mit phpmyadmin hinzuzufügen, gehen Sie zur Struktur dieser Tabelle und suchen Sie unten und klicken Sie darauf.
Um die EINZIGARTIGE Einschränkung auf die gleiche Weise zu entfernen, gehen Sie zur Struktur und scrollen Sie nach unten bis zur Registerkarte "Indizes". Suchen Sie unten und klicken Sie auf "Ablegen".
Diese Lösung war genau das, wonach ich gesucht habe.
Aryeh Beitz
2
Für WAMP 3.0: Klicken Sie auf Struktur unter 1 Spalte hinzufügen. Es wird '- Indizes' angezeigt. Klicken Sie auf -Indexe und legen Sie den gewünschten Index ab.
Ab MySQL 8.0.19 ermöglicht ALTER TABLE eine allgemeinere (und SQL-Standard-) Syntax zum Löschen und Ändern vorhandener Einschränkungen eines beliebigen Typs, wobei der Einschränkungstyp aus dem Einschränkungsnamen bestimmt wird: ALTER TABLE tbl_name DROP CONSTRAINT symbol;
Beispiel:
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;
Antworten:
Eine eindeutige Einschränkung ist auch ein Index.
Verwenden Sie zuerst
SHOW INDEX FROM tbl_name
, um den Namen des Index herauszufinden. Der Name des Index wird in der Spalte gespeichert, diekey_name
in den Ergebnissen dieser Abfrage aufgerufen wird .Dann können Sie DROP INDEX verwenden :
oder die ALTER TABLE- Syntax:
quelle
SHOW CREATE TABLE tbl_name
.Sie können mit phpMyAdmin
DROP
eine eindeutige Einschränkung aus einer Tabelle erstellen, wie in der folgenden Tabelle gezeigt. Für das Wingspan-Feld wurde eine eindeutige Einschränkung festgelegt. Der Name der Einschränkung entspricht in diesem Fall dem Feldnamen.quelle
Die Indizes, die eine eindeutige Schlüsselbeschränkung für eine Tabelle festlegen können, sind
PRIMARY
undUNIQUE
Indizes.Um die eindeutige Schlüsselbeschränkung für eine Spalte zu entfernen, aber den Index beizubehalten, können Sie den Index mit dem Typ entfernen und neu erstellen
INDEX
.Beachten Sie, dass es für alle Tabellen eine gute Idee ist, einen Index zu markieren
PRIMARY
.quelle
UNIQUE
Index durch einen regulären Index gemindert werdenINDEX
.Um eine EINZIGARTIGE Einschränkung mit phpmyadmin hinzuzufügen, gehen Sie zur Struktur dieser Tabelle und suchen Sie unten und klicken Sie darauf.
Um die EINZIGARTIGE Einschränkung auf die gleiche Weise zu entfernen, gehen Sie zur Struktur und scrollen Sie nach unten bis zur Registerkarte "Indizes". Suchen Sie unten und klicken Sie auf "Ablegen".
Hoffe das funktioniert.
Genießen ;)
quelle
Für WAMP 3.0: Klicken Sie auf Struktur unter 1 Spalte hinzufügen. Es wird '- Indizes' angezeigt. Klicken Sie auf -Indexe und legen Sie den gewünschten Index ab.
quelle
Wenn Sie eindeutige Einschränkungen aus der MySQL-Datenbanktabelle entfernen möchten, verwenden Sie alter table mit drop index.
Beispiel:
Tabelle erstellen unique_constraints (unid int, aktivitätsname varchar (100), CONSTRAINT activty_uqniue UNIQUE (aktivitätsname), Primärschlüssel (unid));
Wobei activty_uqniue eine EINZIGARTIGE Einschränkung für die Spalte activity_name ist .
quelle
Beim Löschen des eindeutigen Schlüssels verwenden wir den Index
quelle
Die Einschränkung könnte mit der folgenden Syntax entfernt werden:
Beispiel:
db <> Geigen-Demo
quelle
Mein Tabellenname ist Käufer, der eine eindeutige Einschränkungsspalte emp_id hat. Jetzt werde ich die emp_id löschen
Schritt 1: Käufer von exec sp_helpindex, siehe Bilddatei
Schritt 2: Kopieren Sie die Indexadresse
Schritt 3: Drop-Einschränkung für Tabellenkäufer ändern [UQ__buyers__1299A860D9793F2E] Drop-Spalte emp_id für Tabellenkäufer ändern
Hinweis:
anstelle von Käufern ändern Sie es in Ihren Tischnamen :)
das ist alles Spaltenname emp_id mit Einschränkungen wird gelöscht!
quelle
Zuerst Tabelle löschen
gehe zu SQL
Verwenden Sie diesen Code:
quelle