我有一個約8個表都以大寫字母開頭的MySQL數據庫。任何快速的方法來將它們全部小寫?甚至一個接一個......如果我試試這個,RENAME TABLE Contacts TO contacts
它說ERROR 1050 (42S01): Table 'contacts' already exists
小寫數據庫中的所有表名稱?
5
A
回答
4
個
使用兩重命名 - 首先到一個臨時名稱,然後到小寫:
RENAME TABLE Contacts TO contacts_
然後
RENAME TABLE contacts_ TO contacts
當然,你要小心,不要嘗試使用已經存在的表名,但如果你最初有表格'聯繫人'和'contacts_',我會說你遇到了比案例更嚴重的問題。
+0
這可能是一個很好的情況下存儲過程,它在一個鏡頭如果有很多表格。 – Nick 2012-01-06 17:56:13
0
0
我很抱歉帶回一箇舊帖子。但我也有這個問題。 我做了這個功能來自動執行上述操作。我沒有幫助我的情況,但可能會幫助其他人。這就是我在這裏發佈的原因。
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
+0
嘗試發佈此作爲一個不同的問題,否則修改你的問題,如果你沒有得到任何迴應。 – Gapchoos 2012-10-11 05:29:02
相關問題
- 1. SQL中特定數據庫中所有表的列名稱
- 2. 檢索SQL Server數據庫中所有表的名稱列
- 3. 列出PostgreSQL數據庫的所有索引名稱,列名稱及其表名
- 4. 獲取我數據庫上所有表的名稱
- 5. 在所有數據庫的所有對象中查找表名
- 6. 如何從sqlite獲取所有數據庫名稱和表名稱
- 7. Flyway區分大小寫的數據庫名稱
- 8. SQL Server區分大小寫的數據庫名稱
- 9. JDBC - 從OpenOffice數據庫獲取所有表名稱
- 10. 出現問題出現所有數據庫表字段名稱
- 11. 查詢獲取數據庫的名稱,表的數量,索引的數量,數據庫的大小和數據庫的所有者的大小
- 12. 如何在數據庫中選擇具有特定名稱的所有表格
- 13. Mysql將所有表名改爲小寫
- 14. 列出powershell中的所有網站及其數據庫名稱
- 15. Adventureworks - 查找數據庫中的所有商店名稱
- 16. 小寫字母列表裏面的數據幀的名稱
- 17. 如何獲取Android數據庫中的所有表中的所有表的名稱
- 18. 有沒有辦法使數據庫表名稱作爲數據庫表字段名稱的前綴
- 19. DB2數據庫名稱是區分大小寫或不
- 20. 具有混合大小寫列名的小寫方法名稱
- 21. 從數據庫MongoDB的列表中刪除數據庫名稱
- 22. 從具有特定名稱的所有數據庫中的所有表中選擇
- 23. 如何獲取我的表所屬的數據庫的名稱?
- 24. 選擇數據庫名稱,表名稱和列名稱。
- 25. 查詢以獲取SQL Server 2008數據庫中所有表的名稱
- 26. 按名稱列出列表中的所有數據幀
- 27. NHibernate:獲取所有數據庫表中的所有數據
- 28. 估計您的SQL Server數據庫中所有表的大小
- 29. 在數據庫中列出數據庫和表名稱?
- 30. 數據庫名稱
想到的第一件事 - 爲每個表使用兩個重命名,即:'RENAME TABLE Contacts Contacts_'然後'RENAME TABLE contacts_TO contacts'不知道更好的解決方案。無論如何,這是什麼意思? MySQL不關心你是否從聯繫人,聯繫人,CoNTactS等中選擇。 – Nikoloff 2012-01-06 14:53:48
什麼操作系統,出於好奇? * [「底層操作系統的區分大小寫在數據庫,表名和觸發器名稱的區分大小寫中起作用。」](http://dev.mysql.com/doc/refman/5.5/en/identifier- case-sensitivity.html)* – pilcrow 2012-01-06 15:01:02
@尼科洛夫好想法,工作。和即時通訊使用Ruby on Rails,命名事項 – 2012-01-06 15:05:53