Recommended Posts

I am using WAMP server 2.0 on Windows 7. My gripe with Windows is with its file naming system being case insensitive. Its a disaster especially for SQL users/developers. Due to Windows being case insensitive, MySQL will not allow the table names such as totalmonthlycarsalesbyvendors and TotalMonthlyCarSalesByVendors to co-exist. Those using SQL, including myself, if creating table names have three options:

totalmonthlycarsalesbyvendors, total_monthly_car_sales_by_vendors or, if the MySQL setting lower_case_table_names is set to 0, TotalMonthlyCarSalesByVendors. However, due to Windows being case insensitive, MySQL is forced to treat totalmonthlycarsalesbyvendors and TotalMonthlyCarSalesByVendors as identical and will not allow totalmonthlycarsalesbyvendors to be renamed as TotalMonthlyCarSalesByVendors. Personally speaking at least, I would prefer to use TotalMonthlyCarSalesByVendors instead of total_monthly_car_sales_by_vendors as well as being able to rename totalmonthlycarsalesbyvendors as TotalMonthlyCarSalesByVendors as it is easier to read and shorter as well. This is not just a suggestion, but a plea to the the powers that be in Microsoft. I was advised that Microsoft would not go out on a limb to change its file naming protocol, giving users more choice in naming files, but would only do so if not doing so incurred a massive financial penalty. I hope to be proved wrong.

Ooooook. Aside from Microsoft not throwing their file system out in the trash, having two of anything, be in a table, function, file, your pet gerbil, whatever, having the same name but with a different case is an absolutely horrible idea and pretty much breaks any naming convention known to man out the window.

I agree that example is REALLY BAD!!! I would never suggest you name something like that - but I agree case should matter.

I have never tried this before - but it seems that you can turn on case sensitivity?

http://support.microsoft.com/kb/929110

A file system that was case sensitive becomes case insensitive after you install an update for the .NET Framework 2.0

You enable case sensitivity on a Microsoft Windows file system for Windows/UNIX interoperability.

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ dword:ObCaseInsensitive

If the value of this key is set to 1, the file system is treated as case insensitive. If the value of this key is set to 0, the file system is treated as case sensitive.

When I get a chance will have to check it out.. But from this it would seem you can turn on case sensitivity.

Hope it helps.

Ok yes, no one wants two file names with the same name. My point is that due to Windows being case insensitive with regards filenames, say a MySQL table named for instance totalmonthlycarsalesbyvendors, cannot be renamed as TotalMonthlyCarSalesByVendors as MySQL is forced by Windows naming convention to treat both as identical. So MySQL (I can't vouch for MSSQL) users either have to seperate lowercase words in the tablename with underscores as in total_monthly_car_sales_by_vendors, or set the MySQL setting lower_case_table_names to 0 in order to name the table as TotalMonthlyCarSalesbyVendors, assuming or course that totalmonthlycarsalesbyvendors does not already exist, and if it does, that table has to be dropped (deleted) first along with any data the table may contain. Therefore, the case insenstivity of Windows File Naming protocol doesn't allow SQL developers the ability to change lowercase filenames or tables in MySQL to word first-letter uppercase.

TotalMonthlyCarSalesbyVendors is easier to read than totalmonthlycarsalesbyvendors and is shorter than total_monthly_car_sales_by_vendors. Hope that clarifies my suggestion.

  On 23/03/2011 at 22:32, rpjd said:

Ok yes, no one wants two file names with the same name. My point is that due to Windows being case insensitive with regards filenames, say a MySQL table named for instance totalmonthlycarsalesbyvendors, cannot be renamed as TotalMonthlyCarSalesByVendors as MySQL is forced by Windows naming convention to treat both as identical. So MySQL (I can't vouch for MSSQL) users either have to seperate lowercase words in the tablename with underscores as in total_monthly_car_sales_by_vendors, or set the MySQL setting lower_case_table_names to 0 in order to name the table as TotalMonthlyCarSalesbyVendors, assuming or course that totalmonthlycarsalesbyvendors does not already exist, and if it does, that table has to be dropped (deleted) first along with any data the table may contain. Therefore, the case insenstivity of Windows File Naming protocol doesn't allow SQL developers the ability to change lowercase filenames or tables in MySQL to word first-letter uppercase.

TotalMonthlyCarSalesbyVendors is easier to read than totalmonthlycarsalesbyvendors and is shorter than total_monthly_car_sales_by_vendors. Hope that clarifies my suggestion.

I can rename tables and change their case just fine. If it won't let you go directly from mytable to MyTable try doing mytable to my_table to MyTable.

  On 24/03/2011 at 03:19, Solid Knight said:

I can rename tables and change their case just fine. If it won't let you go directly from mytable to MyTable try doing mytable to my_table to MyTable.

Are you using WAMP server 2.0 on Windows 7? If not, what? I asked on the MySQL forum about this and was informed that without the MySQL setting lower_case_tables_names eing set to 0, all table names, regardless of any uppercase letters will appear as all lowercase. Why should I have to go from mytable to my_table to MyTable? Thats completely idiotic. Shouldn't I be able to name a table MyTable or be able to rename mytable as MyTable. Because of Windows control of the file naming system and it being case insensitive, I can't do that, which is completely unfair. If your telling me I can configure Windows to accept uppercase file(table) names thats great, if not, hence my suggestion.

  On 24/03/2011 at 09:30, rpjd said:

Are you using WAMP server 2.0 on Windows 7? If not, what? I asked on the MySQL forum about this and was informed that without the MySQL setting lower_case_tables_names eing set to 0, all table names, regardless of any uppercase letters will appear as all lowercase.

MySQL is automatically converting your tables to all lowercase names. The Windows filing system preserves whatever case you input. MySQL is doing the conversion.

From MySQL Reference Manual:

Use lower_case_table_names=0 on Unix and lower_case_table_names=2 on Windows. This preserves the lettercase of database and table names. The disadvantage of this is that you must ensure that your statements always refer to your database and table names with the correct lettercase on Windows. If you transfer your statements to Unix, where lettercase is significant, they do not work if the lettercase is incorrect.

Effect of lower_case_table_names=2

Table and database names are stored on disk using the lettercase specified in the CREATE TABLE or CREATE DATABASE statement, but MySQL converts them to lowercase on lookup. Name comparisons are not case sensitive. This works only on file systems that are not case sensitive! InnoDB table names are stored in lowercase, as for lower_case_table_names=1. Setting lower_case_table_names to 2 can be done as of MySQL 4.0.18.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.