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

ALTER TABLE mà không cần khóa bảng?

Tùy chọn khác duy nhất là làm theo cách thủ công mà nhiều hệ thống RDBMS vẫn làm ...
- Tạo một bảng mới

Sau đó, bạn có thể sao chép nội dung của bảng cũ qua từng đoạn một. Trong khi luôn thận trọng với bất kỳ CHÈN / CẬP NHẬT / XÓA nào trên bảng nguồn. (Có thể được quản lý bởi một trình kích hoạt. Mặc dù điều này sẽ gây ra sự chậm lại, nhưng nó không phải là một khóa ...)

Sau khi hoàn tất, hãy thay đổi tên của bảng nguồn, sau đó thay đổi tên của bảng mới. Tốt nhất là trong một giao dịch.

Sau khi hoàn tất, hãy biên dịch lại mọi thủ tục được lưu trữ, v.v. sử dụng bảng đó. Các kế hoạch thực thi có thể sẽ không còn hiệu lực.

CHỈNH SỬA:

Một số nhận xét đã được đưa ra về hạn chế này là một chút kém. Vì vậy, tôi nghĩ rằng tôi sẽ đặt một góc nhìn mới về nó để cho thấy lý do tại sao nó như thế nào ...

  • Thêm một trường mới giống như thay đổi một trường trên mỗi hàng.
  • Khóa trường sẽ khó hơn nhiều so với khóa hàng, đừng bận tâm đến khóa bảng.

  • Bạn đang thực sự thay đổi cấu trúc vật lý trên đĩa, mọi bản ghi sẽ di chuyển.
  • Đây thực sự giống như một CẬP NHẬT trên Toàn bộ bảng, nhưng có nhiều tác động hơn ...


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ý nghĩa của id =LAST_INSERT_ID (id)

  2. MySQL:Chèn datetime vào trường datetime khác

  3. trong đó 1 =1 câu lệnh

  4. Điều gì xảy ra nếu tôi cần một ID tự động tăng rất lớn?

  5. mysql hiển thị Số hàng từ bảng khác trong mỗi hàng