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

Làm thế nào để chuyển đổi tất cả các bảng trong cơ sở dữ liệu thành một đối chiếu?

Bạn cần thực hiện một câu lệnh bảng thay thế cho mỗi bảng. Tuyên bố sẽ theo mẫu sau:

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

Bây giờ để lấy tất cả các bảng trong cơ sở dữ liệu, bạn cần thực hiện truy vấn sau:

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

Vì vậy, bây giờ hãy để MySQL viết mã cho bạn:

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

Bạn có thể sao chép kết quả và thực thi chúng. Tôi chưa kiểm tra cú pháp nhưng bạn sẽ có thể tìm ra phần còn lại. Hãy coi nó như một bài tập nhỏ.

Hy vọng điều đó sẽ giúp!



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ví dụ YEAR () - MySQL

  2. mysql:Chúng ta có thể tạo trình kích hoạt trên bảng hệ thống không?

  3. Tương đương với lệnh spool trong MySQL là gì?

  4. Loại bỏ hoặc cắt bớt một số ký tự đầu tiên hoặc cuối cùng trong cơ sở dữ liệu MySQL với SQL

  5. cách xóa các giá trị trùng lặp trong bảng mysql