Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Đối chiếu thay đổi MySQL của tất cả các bảng

Các đối chiếu Cơ sở dữ liệu khác nhau cho phép bạn lưu trữ các kiểu ký tự khác nhau trong cơ sở dữ liệu. Theo mặc định, MySQL có bộ ký tự latin1 với đối chiếu latin1_swedish_ci. Tuy nhiên, bạn có thể dễ dàng thay đổi đối chiếu MySQL của các bảng cụ thể, tất cả các bảng hoặc thậm chí toàn bộ cơ sở dữ liệu. Dưới đây là cách thay đổi đối chiếu trong MySQL.


Cách thay đổi đối chiếu của tất cả các bảng trong MySQL

Chúng ta sẽ xem xét các bước để thay đổi đối chiếu trong MySQL.


Đây là truy vấn SQL để thay đổi đối chiếu của một bảng MySQL

ALTER TABLE tbl_name 
[[DEFAULT] CHARACTER SET charset_name] 
[COLLATE collation_name]

Trong truy vấn trên, bạn cần chỉ định tên bảng tbl_name . Bạn cũng có thể tùy chọn chỉ định bộ ký tự charset_name và collation collation_name .

Phần thưởng Đọc:Các blog cơ sở dữ liệu hàng đầu để theo dõi

Dưới đây là một ví dụ để thay đổi đối chiếu của tất cả các bảng của cơ sở dữ liệu thành utf8_general_ci. Thay thế database_name table_name bên dưới với cơ sở dữ liệu và tên trường tương ứng.

alter table database_name.table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

Nếu bạn muốn thay đổi đối chiếu của tất cả các bảng trong cơ sở dữ liệu của mình, bạn cần chạy truy vấn trên cho từng bảng riêng biệt.

Vì điều này có thể rất tẻ nhạt, chúng tôi tạo một truy vấn SELECT để tạo các câu lệnh bảng ALTER cho mỗi bảng trong cơ sở dữ liệu của chúng tôi. Đầu tiên, đây là truy vấn SELECT trả về tất cả các chi tiết liên quan đến bảng trong cơ sở dữ liệu của bạn.

SELECT * FROM INFORMATION_SCHEMA.TABLES 
WHERE TABLE_SCHEMA="database_name" 
AND TABLE_TYPE="BASE TABLE";

Phần thưởng đọc:Các lựa chọn thay thế MySQL Workbench hàng đầu

Chúng tôi sửa đổi truy vấn SELECT ở trên để tạo câu lệnh ALTER TABLE cho mỗi bảng trong cơ sở dữ liệu của bạn.

Đây là truy vấn chọn sẽ tạo truy vấn SQL cho tất cả các bảng trong cơ sở dữ liệu của bạn. Thay thế database_name collation_name bên dưới với cơ sở dữ liệu và tên đối chiếu của bạn và chạy nó để tạo truy vấn SQL nhằm thay đổi đối chiếu của tất cả các bảng trong cơ sở dữ liệu của bạn.

SELECT CONCAT("ALTER TABLE ", TABLE_SCHEMA, '.', TABLE_NAME," COLLATE collation_name;") AS ExecuteTheString FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA="database_name" AND TABLE_TYPE="BASE TABLE";

Phần thưởng đọc:Cách bật đăng nhập truy vấn chậm trong MySQL

Đây là một truy vấn SQL khác để thay đổi đối chiếu của tất cả các bảng thành utf8.

SELECT CONCAT('ALTER TABLE ', tbl.TABLE_SCHEMA, '.', tbl.TABLE_NAME, ' CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;') FROM information_schema.TABLES
 tbl WHERE tbl.TABLE_SCHEMA = 'database_name'

Khi bạn có danh sách các truy vấn ALTER TABLE cho mỗi bảng, bạn có thể sao chép-dán và chạy chúng để thay đổi đối chiếu của tất cả các bảng.

Hy vọng bài viết trên sẽ giúp bạn thay đổi đối chiếu của tất cả các bảng trong cơ sở dữ liệu trong MySQL.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL hiện tại () +1 ngày

  2. Cài đặt MySQL-python

  3. 2 cách liệt kê tất cả các thủ tục được lưu trữ trong MySQL

  4. Xuất Cơ sở dữ liệu MySQL sang Cơ sở dữ liệu SQLite

  5. # 1055 - Biểu thức của danh sách SELECT không nằm trong mệnh đề GROUP BY và chứa cột không được tổng hợp, cột này không tương thích với sql_mode =only_full_group_by