Ho un database mysql con circa 8 tabelle che iniziano tutte con una lettera maiuscola. Qualche modo veloce per metterli in minuscolo? O anche uno per uno ... se provo questo, RENAME TABLE Contacts TO contacts
si dice ERROR 1050 (42S01): Table 'contacts' already exists
In lettere minuscole tutti i nomi delle tabelle in un database?
risposta
Usa due rinomina - prima a un nome temporaneo e quindi alla caratteri minuscoli:
RENAME TABLE Contacts TO contacts_
e poi
RENAME TABLE contacts_ TO contacts
Naturalmente, si deve fare attenzione a non provare a utilizzare un nome di tabella già esistente, ma se inizialmente avevi tabelle "Contatti" e "contatti", direi che hai problemi più seri del caso.
Questo potrebbe essere un buon caso per una stored procedure che lo fa in un colpo solo ci sono molti tavoli – Nick
Selezionando questa link, è necessario:
RENAME TABLE tbl_name TO new_tbl_name
MA: Il new_tbl_name deve NON essere utilizzato da un altro tavolo come il nome deve essere unico
Mi dispiace per aver riportato un vecchio post. Ma ho avuto problemi anche con questo. Ho fatto questa funzione per automatizzare quanto sopra. Non ho aiutato nel mio caso, ma potrebbe aiutare altre persone. Ecco perché lo sto postando qui.
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `lowercasetables`()
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE tempname varchar(255);
DECLARE backupname varchar(255);
DECLARE sqlst varchar(5000);
DECLARE cur1 CURSOR FOR SELECT table_name FROM information_schema.TABLES where table_schema = schema();
DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = 1;
OPEN cur1;
REPEAT
FETCH cur1 INTO tempname;
SET backupname = concat(tempname,'_BACKUP');
SET @sqlst = CONCAT(CONCAT('RENAME TABLE ', tempname), CONCAT(' TO ', backupname));
PREPARE stmt1 FROM @sqlst;
EXECUTE stmt1;
DEALLOCATE PREPARE stmt1;
SET @sqlst = CONCAT(CONCAT('RENAME TABLE ', backupname), CONCAT(' TO ', LOWER(tempname)));
PREPARE stmt2 FROM @sqlst;
EXECUTE stmt2;
DEALLOCATE PREPARE stmt2;
UNTIL done END REPEAT;
CLOSE cur1;
END
Prova a postare questa domanda come una domanda diversa oppure modifica la tua domanda se non ricevi alcuna risposta. – Gapchoos
- 1. Il comando H2 "runscript" trasforma tutti i nomi delle tabelle in maiuscolo
- 2. Come ottenere tutti i nomi di tabelle da un database?
- 3. Come si impostano i nomi delle colonne in lettere minuscole per più dataframes?
- 4. Ottieni i nomi delle tabelle da un database
- 5. Visualizzazione di tutti i nomi delle tabelle in php dal database MySQL
- 6. Come convertire lettere maiuscole in lettere minuscole
- 7. Deve essere possibile filtrare i nomi delle tabelle in un singolo database?
- 8. Come convertire i valori dell'array in lettere minuscole in PHP?
- 9. Rinominare i file in lettere minuscole in PowerShell
- 10. Rendere tutti i caratteri in una stringa in lettere minuscole in Lua
- 11. Conversione di variabili JSON in lettere minuscole in C#
- 12. Rinominare i nomi delle colonne nel database postgresql
- 13. dizionario in lettere minuscole in Python
- 14. Come ottenere tutti i nomi delle classi in un pacchetto?
- 15. Url di routing in lettere minuscole come?
- 16. Cambia maiuscole/minuscole dei nomi delle colonne
- 17. ottenere l'elenco dei nomi delle tabelle in diversi schema di un database Oracle
- 18. Come rilevare le lettere minuscole in Python?
- 19. jQuery.attr() garantisce lettere minuscole?
- 20. Convertire caratteri singoli in stringa in lettere minuscole
- 21. Regex sostituire lettere maiuscole con lettere minuscole in PhpStorm
- 22. ricerca dei nomi delle tabelle
- 23. Come convertire le lettere maiuscole in minuscole in Notepad ++
- 24. mysql ottiene i nomi delle colonne delle tabelle in ordine alfabetico
- 25. java: richiama tutti i nomi delle variabili in una classe
- 26. Java come ordinare le lettere minuscole prima delle stringhe maiuscole
- 27. PostgreSQL forza i nomi in minuscolo?
- 28. Cambiare i nomi delle colonne delle tabelle in maiuscolo in postgres
- 29. I nomi degli utenti sono maiuscole e minuscole?
- 30. uno script MYSQL per convertire i nomi delle colonne in minuscolo
La prima cosa che viene in mente - usare due rinomina per ogni tabella, cioè .: 'RENAME TABLE contatti per contacts_' poi' RENAME TABLE CONTATTI_ PER contacts' Non so di una soluzione migliore. Ad ogni modo, qual è il punto di questo? A MySQL non interessa se selezioni da contatti, Contatti, CoNTactS, ecc. – Nikoloff
Quale sistema operativo, per curiosità? * ["La distinzione tra maiuscole e minuscole del sistema operativo sottostante ha un ruolo nella distinzione tra maiuscole e minuscole dei nomi di database, tabelle e trigger."] (Http://dev.mysql.com/doc/refman/5.5/en/identifier- case-sensitivity.html) * – pilcrow
@Nikoloff Buona idea, ha funzionato. E se lo uso con Ruby on Rails, il naming importa –