Tengo una base de datos mysql con alrededor de 8 tablas que comienzan con una letra mayúscula. ¿Alguna forma rápida de minúsculas? O incluso uno por uno ... si intento esto, RENAME TABLE Contacts TO contacts
Dice ERROR 1050 (42S01): Table 'contacts' already exists
¿Minúsculas todos los nombres de tablas en una base de datos?
Respuesta
Uso dos cambios de nombre - en primer lugar a un nombre temporal y luego a la minúscula:
RENAME TABLE Contacts TO contacts_
y luego
RENAME TABLE contacts_ TO contacts
Por supuesto, usted debe tener cuidado de no tratar de usar un nombre de tabla ya existente, pero si inicialmente tenía tablas 'Contactos' y 'contactos', diría que tiene problemas mucho más serios que el caso.
Esto podría ser un buen caso para un procedimiento almacenado que lo hace de una vez si hay muchas tablas – Nick
Al marcar esta link, usted tiene que:
RENAME TABLE tbl_name TO new_tbl_name
PERO: El new_tbl_name debe NO ser utilizado por otra tabla como el nombre debe ser único
Lo siento por traer de vuelta una publicación anterior. Pero tuve problemas con esto también. Hice esta función para automatizar lo anterior. No ayudé en mi caso, pero podría ayudar a otras personas. Es por eso que lo estoy publicando aquí.
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
Intente publicar esto como una pregunta diferente o modifique su pregunta si no obtiene ninguna respuesta. – Gapchoos
- 1. SQLite, ¿cómo obtener todos los nombres de tablas en la base de datos?
- 2. cómo obtener todos los nombres de las tablas en la base de datos sqlCE?
- 3. Obtener nombres de tablas de una base de datos
- 4. Cómo forzar nombres de tablas sensibles a mayúsculas y minúsculas?
- 5. ¿Obtiene todos los nombres de tabla de una base de datos particular mediante consulta SQL?
- 6. Buscar todos los objetos de base de datos por nombre?
- 7. una secuencia de comandos de MySQL para convertir los nombres de columna a minúsculas
- 8. ¿Cómo obtener todos los nombres de tabla de una base de datos?
- 9. Analizar todos los procedimientos almacenados en una base de datos
- 10. Mostrando todos los nombres de tabla en php desde la base de datos MySQL
- 11. ¿Busca en una base de datos Oracle tablas con nombres de columna específicos?
- 12. Sincronización en tiempo real de los datos de la base de datos en todos los clientes
- 13. ¿Los nombres de las tablas en la consulta no distinguen entre mayúsculas y minúsculas?
- 14. ¿Por qué los nombres de mis tablas se convierten a minúsculas en phpmyadmin?
- 15. ¿Cómo hacer valer los nombres de columnas y tablas con mayúsculas y minúsculas en MySql?
- 16. Revocar todos los privilegios para todos los usuarios en una base de datos MySQL
- 17. MySQL minúsculas comparar los datos
- 18. Forma estándar de almacenar nombres en una base de datos
- 19. ¿Cómo obtengo una lista de todos los esquemas en una base de datos del servidor Sql?
- 20. ¿Cómo puedo obtener nombres de tablas de una base de datos MS Access?
- 21. ¿Cómo puedo convertir todas las columnas en mi base de datos a mayúsculas y minúsculas
- 22. ¿Los nombres de usuario siempre distinguen entre mayúsculas y minúsculas?
- 23. Máximo de tablas en una base de datos MySQL
- 24. ¿Cómo puedo eliminar todos los desencadenantes en una base de datos MySQL usando una declaración SQL?
- 25. SQL: elimine todos los datos de todas las tablas disponibles
- 26. Django: elimine todos los datos de todas las tablas (pero conserve las tablas)
- 27. ¿Hay beneficios para una base de datos sensible a mayúsculas y minúsculas?
- 28. Agrupación de tablas dentro de una base de datos MySQL
- 29. MySQL: Recorte todos los campos en la base de datos
- 30. ¿Cómo actualizar una base de datos SQLite y NO perder todos los datos existentes?
La primera cosa que viene a la mente - utilizar dos cambios de nombre para cada tabla, es decir .: 'RENOMBRA tabla de contactos A continuación contacts_'' RENOMBRA contacts_ TABLA PARA contacts' No sabe de una solución mejor. De todos modos, ¿cuál es el sentido de esto? A MySQL no le importa si selecciona desde contactos, contactos, CoNTactS, etc. – Nikoloff
¿Qué sistema operativo, por curiosidad? * ["La distinción entre mayúsculas y minúsculas del sistema operativo subyacente tiene un papel en la distinción entre mayúsculas y minúsculas de los nombres de bases de datos, tablas y desencadenantes".] (Http://dev.mysql.com/doc/refman/5.5/en/identifier- case-sensitivity.html) * – pilcrow
@Nikoloff Buen pensamiento, eso funcionó. Y lo estoy usando con Ruby on Rails, nombrar asuntos –