色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

mysql數據庫分大小寫

老白2年前10瀏覽0評論

MySQL數據庫在創建表名、列名、索引名等對象時,默認是不區分大小寫的。這就意味著,TABLE_NAME、table_name、Table_Name等都指向同一個表。

但是,在啟用了lower_case_table_names選項后,將會出現不同的結果。

mysql>SHOW VARIABLES LIKE "lower_case_table_names";
+------------------------+-------+
| Variable_name          | Value |
+------------------------+-------+
| lower_case_table_names | 1     |
+------------------------+-------+
1 row in set (0.00 sec)

當lower_case_table_names的值為1時,MySQL會將所有對象名轉化為小寫,同時也意味著在創建表名等對象時必須使用小寫字母。

mysql>CREATE TABLE users(
user_id INT,
user_name VARCHAR(50),
);
ERROR 1064 (42000): You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version for the right syntax to use near 'VARCHAR(50),
)' at line 3

以上代碼在啟用lower_case_table_names=1時會報錯,因為user_name這個列名包含了大寫字母。

現在,我們在設置lower_case_table_names為0,再次創建users表,如下所示:

mysql>SET lower_case_table_names=0;
Query OK, 0 rows affected (0.00 sec)
mysql>CREATE TABLE users(
user_id INT,
user_name VARCHAR(50),
);
Query OK, 0 rows affected (0.14 sec)

這次創建成功了。因為在lower_case_table_names=0時,MySQL會區分大小寫,所以user_name這個列名不會被自動轉換成小寫。

在實際開發中,我們需要根據實際情況來選擇是否啟用lower_case_table_names。如果數據庫中包含了大量大小寫不一致的對象名,在啟用lower_case_table_names后會導致同名對象被覆蓋,造成數據的丟失。因此,在進行數據庫設計時,最好遵循一定的命名規范,以免出現不必要的麻煩。