Come rinominare una colonna chiave primaria in MySQL?Come rinominare una colonna chiave primaria in MySQL?
risposta
Non è diverso rispetto alterare qualsiasi altra colonna -
ALTER TABLE `pkey` CHANGE `keyfield` `keyfield2` INT(11) NOT NULL AUTO_INCREMENT
questo cambia la colonna keyfield
nella tabella pkey
di essere chiamato keyfield2
- si deve fornire la definizione poi, come al solito.
Se si lavora con InnoDB, penso che non sia possibile rinominare le chiavi primarie, almeno non si può farlo se si fa riferimento a chiavi esterne. È necessario scaricare il database, rinominare le colonne e le chiavi di riferimento nel file di dettagli, quindi ricaricare il database.
Forse si dispone di un vincolo di chiave esterna. È possibile disabilitare quelli da SET foreign_key_constraints=0
ma è necessario ricordare di aggiornare il database in seguito.
Come cambio questo valore? Io cambio per il valore 1 dopo? –
@RafaelGomesFrancisco cosa intendi? – Alex
Possibile esercizio di cattive pratiche. Ma potresti esportare l'intero db in un file di testo sql. Trova e sostituisci il PK che vuoi rinominare, quindi ripristina il database su sql.
Lasciare la parte PRIMARY KEY dell'alterazione. La chiave primaria verrà aggiornata automaticamente.
Questa risposta fa il trucco quando ricevi errori imprevisti. Grande! –
Se altre tabelle hanno una chiave esterna sul proprio tavolo, non è possibile rinominare direttamente la colonna utilizzando alter table, verrà visualizzato il seguente errore: [HY000] [1025] Errore durante la rinomina di xxx in yyy (errno: 150) È necessario:
- goccia chiavi esterne da parte degli altri tavoli che puntano alla chiave primaria che si desidera rinominare
- rinominare la chiave primaria
- aggiungere la colonna straniero ad altri tavoli
Quando si rinomina una tabella in Intellij, si genera il codice do drop e si aggiunge la chiave esterna.
- 1. Chiave primaria multicolumn MySQL
- 2. SQL: impostare colonna esistente come chiave primaria in MySQL
- 3. come aggiungere una nuova colonna alla chiave primaria composita esistente
- 4. Come possiamo rinominare la chiave primaria di una tabella in fluent-migrator?
- 5. mysql, modifica colonna rimuovi chiave primaria e incremento automatico
- 6. Tipo di colonna chiave primaria MySQL per tabelle grandi
- 7. Imposta la colonna come chiave primaria se la tabella non ha una chiave primaria
- 8. MySQL - utilizzo di String come chiave primaria
- 9. rinominare una colonna in Rails
- 10. Quando dovrei contrassegnare una colonna come chiave primaria?
- 11. Eloquent: usa un'altra colonna come chiave primaria su una relazione
- 12. Mysql - Aggiungi auto_increment alla chiave primaria
- 13. Come rinominare una chiave in NSMutableDictionary?
- 14. Modifica chiave primaria MySQL quando vincoli di chiave esterna esiste
- 15. Come modificare la colonna chiave primaria in Grails?
- 16. Come selezionare più righe per chiave primaria multi-colonna in MySQL?
- 17. Come impostare una chiave primaria in MongoDB?
- 18. SQL Server incrementa automaticamente una colonna senza chiave primaria
- 19. Visualizzazioni MySQL in Navicat - Come definire "chiave primaria"?
- 20. MySQL: Come impostare la chiave primaria su phpMyAdmin?
- 21. Vincolo chiave esterna MySQL - Colonna intero
- 22. Come posso aggiungere un INDICE con Doctrine 2 a una colonna senza renderlo una chiave primaria?
- 23. Devo aggiungere un indice su una tabella mySQL se la colonna ID è la chiave primaria?
- 24. Chiave primaria contro chiave
- 25. Come definire chiave primaria composta in SQLAlchemy
- 26. Come rinominare JSON chiave
- 27. MySQL: come utilizzare VARCHAR come chiave primaria AUTO INCREMENT
- 28. Una chiave esterna può agire come una chiave primaria?
- 29. È stata indicizzata automaticamente una chiave primaria?
- 30. Chiave primaria UUID MySQL - generata da PHP o MySQL?
Questa soluzione causerà l'errore 150. –
Questo funziona quando non ci sono chiavi esterne. Un'altra risposta suggerisce il dumping/ripristino dell'intero database, che funzionerà, ma che semplicemente ha fatto cadere/ricreare gli indici/le chiavi esterne ha funzionato per me. – penfold
d'accordo con @Pavel Rodionov, genera il seguente errore: [HY000] [1025] Errore nel cambio di nome xxx in yyy (errno: 150) –