Quindi in pratica ho un database Joomla in MySQL che ha un gruppo di tabelle che hanno il prefisso 'jmla_'. Vorrei rinominare tutte queste tabelle sostituendo il prefisso 'jmla_' con un prefisso 'jos_'. Qualche idea su come fare questo con un semplice script SQL o una query SQL?In MySQL, in che modo posso rinominare le tabelle all'interno di un database?
risposta
- Esporta usando phpMyAdmin per .sql file di
- Utilizzare qualsiasi editor di testo (io preferisco vim, lavoro eccellente su file di grandi dimensioni), con la funzione "trova e sostituisci" per aprire il file
- Do "trova e sostituisci" , inserendo il prefisso attuale nella casella di ricerca e aggiornato nella casella di sostituzione
- Importare il file utilizzando phpmyadmin.
Ricordarsi di eliminare il vecchio database prima dell'importazione da phpmyadmin. Questo può essere fatto, controllando le opzioni adatte durante l'esportazione.
RENAME TABLE jmla_whatever to jos_whatever;
Dovrete scrivere uno script per coprire tutte le vostre tabelle - è possibile popolare lo script con l'uscita di show tables
. Vedi http://dev.mysql.com/doc/refman/5.0/en/rename-table.html per i dettagli.
eseguita questa specifica:
SELECT 'rename table '||table_name||' to '||'jos'||substr(table_name,5)||';'
FROM information_schema.tables
WHERE table_name like 'jmla%'
Questo crea uno script che rinominare tutti i tavoli. Basta copiare & incollare l'output nel tuo client SQL.
(Sarà necessario cambiare il ||
di operatore di concatenazione non standard di MySQL nel caso in cui non si esegue nella modalità ANSI)
Assicurati di filtrare anche sul database su cui vuoi applicare questo, altrimenti questo produrrà query RENAME su tutti i database comprese le altre installazioni di Joomla che potresti avere: 'AND TABLE_SCHEMA = 'your_joomla_db'' – Fanis
SELECT concat ('rename table ',table_name,' to ',table_name,'_old;')
FROM information_schema.tables
WHERE table_name like 'webform%'
and table_schema='weiss_db_new'
funzionerà.
Avete considerato l'utilizzo del componente Strumenti di amministrazione di Akeeba per Joomla! e quindi utilizzare l'editor Prefisso di database per modificare i prefissi delle tabelle, funziona davvero bene. Gli strumenti di amministrazione di Akeeba possono essere utilizzati per proteggere Joomla! installazione
Akeeba può essere ottenuto here
- 1. Posso usare ALTER DATABASE per rinominare un database mysql?
- 2. Come eliminare tutte le tabelle in un database MySQL?
- 3. mysql che separa le tabelle
- 4. Come posso rinominare tutti gli indici in MySQL
- 5. Elenco di tutte le tabelle in un database
- 6. Come rinominare un indice in MySQL
- 7. Come bloccare tutte le tabelle in un mysql db?
- 8. Come rinominare un database in RethinkDB
- 9. mysql ottimizza le tabelle
- 10. Un modo per mettere in ordine automaticamente le tabelle nel diagramma di MySql Workbench?
- 11. Come visualizzare tutte le tabelle in un database HSQLDB?
- 12. Come si alias un database in MySQL?
- 13. MySQL: molte tabelle o molti database?
- 14. Rinominare i modelli (tabelle) in Django
- 15. modo per cercare nell'intero database una stringa in MySQL
- 16. Accesso a un database MySQL in Electron
- 17. Crittografia AES Mysql predefinita per tutte le tabelle in un database
- 18. Cerca in tutte le tabelle utilizzando MySQL Workbench
- 19. Inserire dati in tabelle mysql usando ansible
- 20. elenca tutte le tabelle in un database con MySQLi
- 21. In che modo MySQL memorizza gli indici?
- 22. Recupera un elenco di tutte le tabelle nel database
- 23. Come posso archiviare dati sensibili in un database MySQL?
- 24. query SQL che unisce le tabelle da diversi database FDB
- 25. Elenco di tabelle non vuote nel database MySQL
- 26. elenco di tutte le tabelle nel database
- 27. Inserisci MySQL da un database in un altro
- 28. Come rinominare il database in modalità multiutente
- 29. Le tabelle del database di sistema MySQL possono essere convertite in InnoDB?
- 30. Elimina tutte le tabelle tranne una in MySql
E cosa succede se uno dei nomi delle righe ha "jmla_" in esso? O peggio, se i dati lo contengono da qualche parte? –
1. Non ho mai visto questo caso nella pratica 2. La mia soluzione ha fatto un altro aspetto positivo, cambiando il punto di riferimento nel database non-exsist. –
Il punto è che quando c'è una soluzione migliore là fuori, non vale la pena rischiare di fare una semplice ricerca e sostituzione. La soluzione può portare a problemi difficili da debugare in futuro. –