Skip to content

lower_case_table_names Case sensitive support

lower_case_table_names is a global variable that MatrixOne sets whether case is sensitive.

Note

Unlike mysql, MatrixOne supports only 0 and 1 modes for now, and defaults to 1 on both linux and mac systems.

View lower_case_table_names

View lower_case_table_names in MatrixOne using the following command:

show variables like "lower_case_table_names"; -- defaults to 1

Set lower_case_table_names

Set lower_case_table_names in MatrixOne with the following command:

set global lower_case_table_names = 0; -- default is 1, reconnecting to database takes effect

Explanation of parameters

parameter is set to 0

Set lower_case_table_names to 0. Identifiers are stored as raw strings with names that are case sensitive.

Examples

```sql mysql> show variables like "lower_case_table_names"; -- Check the default parameter, the default value is 1 +------------------------+-------+ | Variable_name | Value | +------------------------+-------+ | lower_case_table_names | 1 | +------------------------+-------+ 1 row in set (0.00 sec)

set global lower_case_table_names = 0; -- Reconnecting to the database takes effect

mysql> show variables like "lower_case_table_names"; -- Reconnect to the database to view the parameters, the change was successful +------------------------+-------+ | Variable_name | Value | +------------------------+-------+ | lower_case_table_names | 0 | +------------------------+-------+ 1 row in set (0.00 sec)

create table Tt (Aa int); insert into Tt values (1), (2), (3);

mysql> select Aa from Tt; -- Name comparison is case sensitive +------+ | Aa | +------+ | 1 | | 2 | | 3 | +------+ 3 rows in set (0.03 sec)

### Parameter set to 1

 Set `lower_case_table_names` to 1. identifiers are stored in lowercase and name comparisons are case insensitive.

**Example**

```sql <!-- validator-ignore-exec -->
set global lower_case_table_names = 1;
-- Reconnecting to the database takes effect

mysql> show variables like "lower_case_table_names";
-- Reconnect to the database to view the parameters, the change was successful
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_table_names | 1     |
+------------------------+-------+
1 row in set (0.00 sec)

create table Tt (Aa int,Bb int);
insert into Tt values (1,2), (2,3), (3,4);

mysql> select Aa from Tt; -- Name comparison is case insensitive
+------+
| aa   |
+------+
|    1 |
|    2 |
|    3 |
+------+
3 rows in set (0.03 sec)

-- The alias of a column displays the original string when the result set is returned, but the name comparison is case insensitive, as shown in the following example:
mysql> select Aa as AA,Bb from Tt;
+------+------+
| AA   | bb   |
+------+------+
|    1 |    2 |
|    2 |    3 |
|    3 |    4 |
+------+------+
3 rows in set (0.00 sec)