Are column and table name case sensitive in MySQL?

MysqlCollationCase Sensitive

Mysql Problem Overview


If I have a column names called category_id and Category_Id, are they different?

And if I have table called category and Category, are they different?

Mysql Solutions


Solution 1 - Mysql

On Unix, table names are case sensitive. On Windows, they are not. Fun, isn't it? Kinda like their respective file systems. Do you think it's a coincidence?

In other words, if you are developing on Windows but planning on deploying to a Linux machine, better test your SQL against a Linux-based MySQL too, or be prepared for mysterious "table not found" errors at prod time. VMs are cheap these days.

Field (column) names are case-insensitive regardless.

EDIT: we're talking about the operating system on the MySQL server machine, not client.

Solution 2 - Mysql

From the MySQL documentation:

> database and table names are not case sensitive in Windows, and case > sensitive in most varieties of Unix. One notable exception is Mac OS > X, which is Unix-based but uses a default file system type (HFS+) that > is not case sensitive.

and

> Column and index names are not case sensitive on any platform, nor are column aliases.

Solution 3 - Mysql

For database and table names, it depends on the underlying operating system. See 8.2.2. Identifier Case Sensitivity

Solution 4 - Mysql

Strangely enough it seems to be case sensitive in the MySQL Workbench even on Windows.

We just tried to alter the results of a SELECT statement but the Workbench didn't let us, complaining that our query did not include the table's primary key (which it did but in lower-case) so the result was read-only. Running the same query with the primary key in proper case (ID instead of id) would let us edit the results as expected.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionshinView Question on Stackoverflow
Solution 1 - MysqlSeva AlekseyevView Answer on Stackoverflow
Solution 2 - MysqlAnitha.yView Answer on Stackoverflow
Solution 3 - MysqlPekkaView Answer on Stackoverflow
Solution 4 - MysqlThomas TouzimskyView Answer on Stackoverflow