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

đổi tên một bảng bị khóa

Nói chung, Rick đúng khi sử dụng Công cụ Percona (xem 1 2 ), câu trả lời cho câu hỏi thực sự là sử dụng ALTER TABLE . Tôi nghĩ RENAME chỉ là một bí danh - nhưng có vẻ như không phải vậy .

Kiểm tra dường như chỉ ra rằng điều này hoạt động tốt:

CREATE TABLE foo_new (...)

-- copy data to new table, might take very long
INSERT INTO foo_new (id,created_at,modified_at)
  SELECT * FROM foo WHERE id <= 3;

LOCK TABLES foo WRITE, foo_new WRITE;

-- quickly copy the tiny rest over
INSERT INTO foo_new (id,created_at,modified_at)
  SELECT * FROM foo WHERE id > 3;

-- now switch to the new table
ALTER TABLE foo RENAME TO foo_old;
ALTER TABLE foo_new RENAME TO foo;

UNLOCK TABLES;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. RSA trong Android tạo ra các khóa đúng nhưng giải mã sai

  2. Lưu trữ MySQL trên Azure, Dịch vụ cơ sở dữ liệu đám mây được quản lý hoàn toàn ra mắt tại ScaleGrid

  3. Cách khởi động máy chủ MySQL trên Windows XP

  4. Sắp xếp thứ tự các chữ cái không phải tiếng Anh trong MySQL

  5. Lỗi trong MySQL khi đặt giá trị mặc định cho DATE hoặc DATETIME