Cách đổi tên View trong MySQL (Rename View)
Trong tutorials này mình sẽ hướng dẫn cách đổi tên view trong MySQL bằng cách sử dụng lệnh RENAME TABLE
và kết hợp hai lệnh DROP VIEW
và CREATE VIEW
.
1. Sử dụng Rename Table để đổi tên View
Bởi vì View và Table có chung cấu trúc và đặc tính nên bạn hoàn toàn có thể sử dụng lệnh RENAME TABLE
để thay đổi tên cho View.
Dưới đây là cú pháp đơn giản để đổi tên View:
RENAME TABLE original_view_name TO new_view_name;
* Lưu ý: Bạn không thể dùng lệnh này để di chuyển từ database này sang database khác. Nếu cố tình làm sẽ xuất hiện lỗi.
Bài viết này được đăng tại [free tuts .net]
Ví dụ: Tạo view có tên là productLineSales
CREATE VIEW productLineSales AS SELECT productLine, SUM(quantityOrdered) totalQtyOrdered FROM productLines INNER JOIN products USING (productLine) INNER JOIN orderdetails USING (productCode) GROUP BY productLine;
Bây giờ mình muốn đổi tên từ productLineSales sang productLineQtySales thì cách làm như sau:
RENAME TABLE productLineSales TO productLineQtySales;
Muốn kiểm tra thì hãy dùng lệnh SHOW FULL TABLES để xem tên đã đổi chưa nhé.
SHOW FULL TABLES WHERE table_type = 'VIEW';
2. Kết hợp Drop View và Create View để đổi tên View
Có một cách khác để đổi tên View trong MySQL đó là sử dụng lệnh Drop View để xóa view đó, sau đó sử dụng Create View để tạo lại View mới. Cách này nhìn chung hơi phiền hà, nhưng bạn có thể di chuyển view từ DB này sang DB khác.
Giả sử ta muốn đổi tên view từ productLineQtySales sang categorySales thì thực hiện các bước như sau:
Bước 1: Dùng lệnh SHOW CREATE VIEW để xem cấu trúc SQL của View đó.
SHOW CREATE VIEW productLineQtySales;
Ta thu được kết quả như sau:
Hãy copy lại nội dung SQL ở cột Create View mà mình đã khoanh tròn và lưu vào file txt nhé.
Bước 2: Dùng lệnh Drop View để xóa view.
DROP VIEW productLineQtySales;
Bước 3: Dùng lệnh Create View để tạo view mới với nội dung mà bạn đã lưu trong file txt ở bước 1.
CREATE VIEW categorySales AS SELECT productLine, SUM(quantityOrdered) totalQtyOrdered FROM productLines INNER JOIN products USING (productLine) INNER JOIN orderDetails USING (productCode) GROUP BY productLine;
Vậy là xong!
Như vậy qua bài viết này bạn đã biết cách đôi tên View trong MySQL rồi phải không nào. Nếu chỉ có nhu cầu đơn giản là đổi tên View thì bạn hãy sử dụng lệnh Rename Table, còn muốn di chuyển View từ DB nay sang DB khác thì bạn phải kết hợp cả hai lệnh Drop View và Create View nhé.