2009-06-02 152 views
4

我正在運行Blogengine.Net,並且已經注意到所有表都創建了小寫字母(表名be_settings),但很多查詢都寫入了混合大寫字母(Select * from be_Settings)。如果您的MySql實例在Windows上運行或爲Windows設置兼容性,此工作正常。由於我的託管提供程序MySql實例區分大小寫,因此出現錯誤。有沒有可以通過phpMyAdmin修改這個錯誤的設置?如果我不需要的話,我不希望瀏覽所有代碼並修復BlogEngine.Net。使用phpMyAdmin更改MySql區分大小寫?

回答

1

如果你正在試圖解決這個爲BlogEngine.Net您可以輕鬆地重新命名所有的表使用駝峯爲所有查詢的BlogEngine.Net使用駝峯寫的。

0

數據庫是如何創建的?您可能會發現它創建表的查詢使用正確的情況下:

CREATE TABLE be_Settings (...) 

這只是MyISAM表存儲在文件系統中的文件,因爲它是在Windows,他們只是轉換成小寫。如果你在linux系統上從這些查詢中創建數據庫,你會發現所有的表都是正確的。

的教訓從這個是要始終使表名小寫...

+0

如果只有BlogEngine.Net遵循此規則。 – 2009-06-02 12:24:51

1

設置你之後的lower_case_table_names(設置爲1或2)。 不幸的是,這需要在MySQL守護進程啓動時設置,而不是通過phpmyadmin。你可以問你的託管服務提供商爲你做這個嗎?

3

MySQL表名的區分大小寫特定於操作系統。 MySQL數據存儲在文件中,這些文件受到操作系統強制執行的任何規則的約束。例如,Linux是區分大小寫的。

有一個可以被操縱的變量'lower_case_table_names',但是好像你不得不重新創建所有的表。

http://dev.mysql.com/doc/refman/5.0/en/identifier-case-sensitivity.html