2012-02-11 40 views

Trả lời

40

Bạn có thể làm CREATE TABLE SELECT từ chế độ xem để xây dựng. Điều đó sẽ lặp lại cấu trúc của khung nhìn dưới dạng một bảng mới chứa tất cả các hàng của khung nhìn. Đây là số MySQL syntax reference cho tuyên bố này.

CREATE TABLE tbl_from_view AS  
    SELECT 
    col1, 
    col2, 
    col3, 
    col4, 
    col5 
    FROM your_view; 

Lưu ý rằng bạn sẽ muốn rất rõ ràng trong lựa chọn cột của mình. Bạn không nên làm một số SELECT * từ chế độ xem nguồn. Hãy chắc chắn rằng bạn có bí danh cho bất kỳ cột được tính toán hoặc tổng hợp nào như COUNT(*), MAX(*), (col1 + col2), v.v.

+4

Tại sao không nên chọn 'SELECT *'? –

+4

@MartinBurch Nó thường được _never_ khuyến khích để 'SELECT *' trong mã sản xuất, thay vào đó là để rõ ràng về các cột lấy ra và thứ tự của chúng. Trong trường hợp CTAS, bạn có thể muốn chỉ định thứ tự cột. Nếu bạn biết chắc chắn rằng bạn cần tất cả các cột và chúng theo thứ tự ưu tiên, thì hãy tiếp tục với 'SELECT *', nhưng tốt hơn là phải rõ ràng và tránh các surpirses (như các cột blob nhị phân lớn được thêm vào bởi đồng nghiệp của bạn, không biết bạn) –

1

Tôi cũng thấy rằng trong đầu ra mysqldump, có các câu lệnh tạo chế độ xem dưới dạng bảng, ngay trước khi nó xác định chế độ xem. Tôi có thể phân tích cú pháp đó và chạy chúng dưới dạng truy vấn.

Các vấn đề liên quan