Computer >> Máy Tính >  >> Lập trình >> MySQL

Làm thế nào để thay đổi đối chiếu thành utf8_bin trong một dòng?

Bạn cần sử dụng lệnh ALTER để thay đổi đối chiếu thành utf8_bin. Cú pháp như sau:

ALTER TABLE yourTableName COLLATE utf8_general_ci;

Để hiểu cú pháp trên, chúng ta hãy tạo một bảng. Truy vấn để tạo bảng như sau:

mysql> create table CollateDemo
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Name varchar(20),
   -> Age int,
   -> PRIMARY KEY(Id)
   -> );
Query OK, 0 rows affected (0.98 sec)

Kiểm tra DDL của bảng. Cú pháp như sau:

SHOW CREATE TABLE yourTableName;

Bây giờ chúng ta hãy kiểm tra DDL của bảng của chúng ta:

mysql> show create table CollateDemo;

Sau đây là kết quả:

+-------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table       | Create Table                                                                                                                                                                                                               |
+-------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| CollateDemo | CREATE TABLE `collatedemo` (`Id` int(11) NOT NULL AUTO_INCREMENT, `Name` varchar(20) DEFAULT NULL, `Age` int(11) DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci   |
+-------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

Bây giờ bạn có thể thay đổi đối chiếu bằng lệnh ALTER. Truy vấn như sau:

mysql> alter table CollateDemo collate utf8_general_ci;
Query OK, 0 rows affected (0.39 sec)
Records: 0 Duplicates: 0 Warnings: 0

Bây giờ chúng ta hãy kiểm tra DDL của bảng:

mysql> show create table CollateDemo;

Sau đây là kết quả:

+--------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table       | Create Table                                                                                                                                                                                                  |
+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| CollateDemo | CREATE TABLE `collatedemo` (`Id` int(11) NOT NULL AUTO_INCREMENT, `Name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, `Age` int(11) DEFAULT NULL, PRIMARY KEY (`Id`) ) ENGINE = InnoDB DEFAULT CHARSET = utf8       |
+-------------+--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
1 row in set (0.00 sec)