Wie benenne ich eine Primärschlüsselspalte in MySQL um?Wie benenne ich eine Primärschlüsselspalte in MySQL um?
Antwort
es ist nicht anders als jede andere Spalte zu verändern -
ALTER TABLE `pkey` CHANGE `keyfield` `keyfield2` INT(11) NOT NULL AUTO_INCREMENT
dies ändert die Spalte keyfield
in Tabelle pkey
werden keyfield2
genannt - Sie haben die Definition später zu liefern, wie üblich.
Wenn Sie mit InnoDB arbeiten, dann denke ich, dass Sie Primärschlüssel nicht umbenennen können, zumindest können Sie nicht, wenn sie von Fremdschlüsseln referenziert werden. Sie müssen die Datenbank sichern, die Spalten und referenzierenden Schlüssel in der Speicherabbilddatei umbenennen und dann die Datenbank neu laden.
Möglicherweise haben Sie eine Fremdschlüsseleinschränkung an Ort und Stelle. Sie können diese durch SET foreign_key_constraints=0
deaktivieren, aber Sie müssen daran denken, die Datenbank danach zu aktualisieren.
Wie ändere ich diesen Wert? Ich ändere nach Wert 1 nach? –
@RafaelGomesFrancisco was meinst du? – Alex
Mögliche eine schlechte Praxis arbeiten herum. Aber Sie könnten Ihre gesamte Datenbank in eine SQL-Textdatei exportieren. Suchen und ersetzen Sie die PK, die Sie umbenennen möchten, und stellen Sie die Datenbank anschließend über SQL zurück.
Lassen Sie den PRIMARY KEY-Teil der alter-Anweisung weg. Der Primärschlüssel wird automatisch aktualisiert.
Diese Antwort funktioniert, wenn Sie unerwartete Fehler erhalten. Groß! –
Wenn andere Tabellen einen Fremdschlüssel in Ihrer Tabelle haben, können Sie die Spalte nicht direkt umbenennen, indem Sie alter table verwenden. Der folgende Fehler wird ausgegeben: [HY000] [1025] Fehler beim Umbenennen von xxx in yyy (errno: 150) Sie müssen:
- Drop Fremdschlüssel von anderen Tabellen auf den Primärschlüssel Sie zeigt
- umbenennen der Primärschlüssel
- fügen Sie die fremden Spalte zu anderen Tabellen
Beim Umbenennen einer Tabelle in Intellij generiert es Sie den Code, den Sie löschen und den Fremdschlüssel hinzufügen.
- 1. Wie benenne ich ein MySQL-Schema um?
- 2. Wie benenne ich Dateien mit R um?
- 3. Wie benenne ich diese Datei um?
- 4. Wie benenne ich einen bestehenden Menüpunkt um?
- 5. Wie benenne ich eine Datei in Heroku
- 6. Wie benenne ich eine Datei in Scala?
- 7. Wie benenne ich eine existierende Grails-Applikation um?
- 8. Wie benenne ich eine virtuelle SharePoint-Maschine
- 9. Wie benenne ich deine App in itunesconnect um?
- 10. Wie benenne ich einen Datenrahmen in einer For-Schleife um
- 11. Wie benenne ich ein Django-Projekt in PyCharm um?
- 12. Wie benenne ich einen Edelstein?
- 13. Wie benenne ich einen Thread in Linux?
- 14. Wie benenne ich eine Tabelle in SQL Server Compact Edition?
- 15. Was ist ct100 und wie benenne ich es um?
- 16. Wie benenne ich ein Google Cloud Platform-Projekt um?
- 17. Wie benenne ich dynamisch Objekte in Java?
- 18. Wie benenne ich den Klassennamen in swift?
- 19. Wie benenne ich eine Tabellenspalte in Oracle 10g
- 20. Wie benenne ich eine Spalte in einer Datenbanktabelle mit SQL?
- 21. Sollte ich Primärschlüsselspalte in Oracle indexieren
- 22. Wie benenne ich ein Attribut mit XSLT?
- 23. Wie benenne ich diese PHP-Arrays?
- 24. Rails has_many: through -> Soll ich eine Primärschlüsselspalte behalten?
- 25. Problem mein Primärschlüsselspalte Seeding
- 26. Wie erstellt man eine IDENTITY-Primärschlüsselspalte mit Vererbung pro Klasse?
- 27. Wie benenne ich die Prozesse in einem multiprocessing.pool?
- 28. Wie benenne ich ein Modell in Laravel, um nicht mit einer vorhandenen Klasse zu kollidieren?
- 29. Wie benenne ich Dateien um, wenn sie in einem Jar von ant's jar Task enthalten sind?
- 30. Wie kann ich den Leistungsaufwand beim Einfügen in eine uniqueidentifier-Primärschlüsselspalte beobachten?
Diese Lösung verursacht den Fehler 150. –
Dies funktioniert, wenn keine Fremdschlüssel vorhanden sind. Eine andere Antwort schlägt vor, Dumping/Wiederherstellung der gesamten Datenbank, die funktioniert, aber nur die Fremdschlüssel/Indexe löschen/neu erstellen für mich arbeitete. – penfold
stimme mit @Pavel Rodionov überein, es gibt den folgenden Fehler aus: [HY000] [1025] Fehler beim Umbenennen von xxx in yyy (errno: 150) –