Ich habe eine bereits vorhandene Tabelle mit einem Feld, das eindeutig sein sollte, aber nicht eindeutig ist. Ich weiß das nur, weil ein Eintrag in die Tabelle gemacht wurde, der den gleichen Wert wie ein anderer, bereits vorhandener Eintrag hatte, und dies verursachte Probleme.
Wie kann ich dafür sorgen, dass dieses Feld nur eindeutige Werte akzeptiert?
mysql
unique-constraint
Lothar
quelle
quelle
If IGNORE is specified, only the first row is used of rows with duplicates on a unique key, The other conflicting rows are deleted.
DocsALTER
, um dies zu erledigen.ALTER IGNORE
kann aus Sicherheitsgründen weiterhin einen doppelten Fehler in MySQL Version> 5.5 und in InnoDB geben. Wenn Sie nur sicher sind, dass es richtig ist, die erste der duplizierten Zeilen beizubehalten, versuchen Sie esset session old_alter_table=1
. Vergessen Sie nicht, es zurückzusetzen. mysqlolyk.wordpress.com/2012/02/18/…Schreiben Sie diese Abfrage einfach in Ihre Datenbank phpmyadmin.
Z.B:
ALTER TABLE user ADD UNIQUE (email)
quelle
Wenn Sie die Einschränkung auch benennen möchten, verwenden Sie Folgendes:
quelle
CREATE UNIQUE INDEX foo ON table_name (field_name)
Sie müssen doppelte Werte in dieser Spalte entfernen, bevor Sie diese SQL ausführen. Jeder vorhandene doppelte Wert in dieser Spalte führt Sie zum MySQL-Fehler 1062
quelle
Der einfachste und schnellste Weg wäre mit der phpmyadmin-Strukturtabelle.
Dort ist es in russischer Sprache, aber in englischer Sprache sollte es gleich sein. Klicken Sie einfach auf die Schaltfläche Einzigartig. Auch von dort aus können Sie Ihre Spalten PRIMARY oder DELETE machen.
quelle
ist die richtige Antwort
das Einsatzteil
quelle
Dieser Code soll unser Problem lösen, einen eindeutigen Schlüssel für eine vorhandene Tabelle festzulegen
quelle