Home  >  Article  >  Database  >  How to set size difference in mysql

How to set size difference in mysql

PHPz
PHPzOriginal
2023-04-19 17:25:345822browse

MySQL database is a commonly used relational database management system used to store and access data in web applications. Data tables in MySQL are case-insensitive, which means that they are not case-sensitive when querying. However, in some cases, we need MySQL to be case sensitive, in which case corresponding settings need to be made. This article will introduce how to set case sensitivity in MySQL.

1. The principle of case sensitivity in MySQL

In MySQL, the name is only regarded as a character, not a word or phrase of the language. Therefore, MySQL does not use case to determine the difference between names. For example, MySQL treats "table1" and "Table1" as the same name.

2. Set MySQL to be case sensitive

  1. Set it in the my.cnf configuration file

Open the my.cnf configuration file if it does not exist , a new file is created. Add the following code to the file:

[mysqld]
lower_case_table_names=1

Save the file and restart the MySQL server. You can make MySQL enforce case sensitivity by setting lower_case_table_names to 1. If it is set to 0, MySQL will not be case sensitive and the default value is 0.

  1. Set in the command line

For users who do not have permission to modify the MySQL configuration file, they can set it in the MySQL command line. Use the following command on the command line:

SET GLOBAL lower_case_table_names=1;

This will set the lower_case_table_names parameter to 1 globally on the MySQL server. This setting will persist across MySQL server restarts.

Can also be set in the current session using the following command:

SET SESSION lower_case_table_names=1;

This will set the lower_case_table_names parameter to 1 in the current session. This setting will expire at the end of the current session.

3. Notes

  1. Using the lower_case_table_names=1 parameter will cause the case of sensitive table names to be converted to lower case. If two tables have the same name but are written in different cases, they become the same table when lower_case_table_names=1. Therefore, you need to choose the table name carefully when using this parameter.
  2. With lower_case_table_names=1, case-sensitive non-binary sorting or lookup rules, such as utf8_bin, cannot be used. This is because lower_case_table_names=1 will convert all characters to lowercase, which will cause case-sensitive sorting or search rules to not work.
  3. When lower_case_table_names=1 is used, the case-sensitive character set feature is not available. For example, in the latin1_cs or utf8_cs character sets, cs indicates case sensitivity, but lower_case_table_names=1 forces all characters to be converted to lowercase, so the case sensitivity rules will not work.

4. Summary

The default settings of the MySQL database are case-insensitive. However, when you need to be case-sensitive when querying, you can set lower_case_table_names to 1 in the my.cnf configuration file, or use the SET statement in the MySQL command line. But it should be noted that there are some restrictions on using lower_case_table_names=1, which may cause some problems if the table name or character set is not chosen carefully. Therefore, it needs to be used with caution.

The above is the detailed content of How to set size difference in mysql. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn