Đó là một sự hiểu lầm. Postgres không "thay đổi định dạng". Chuỗi SQL ban đầu không được lưu trữ ở tất cả .
Truy vấn được phân tích cú pháp và viết lại và tùy thuộc vào loại truy vấn, hành động được thực hiện. Ví dụ , khi bạn tạo chế độ xem , kết quả được lưu trữ trong danh mục hệ thống, hầu hết là pg_class
và pg_rewrite
.
Bạn cũng phải lưu ý rằng tất cả các số nhận dạng được giải quyết tại thời điểm tạo đối tượng cơ sở dữ liệu, lấy hiện tại search_path
và khả năng hiển thị vào tài khoản (ràng buộc sớm). Cùng một chuỗi truy vấn có thể có nghĩa khác sau này, nếu môi trường thay đổi theo bất kỳ cách nào.
Những gì bạn thấy sau đó là một thiết kế lại phiên bản được tạo từ các mục nhập này. Có một số chức năng tích hợp sẵn để trợ giúp điều đó, nhưng phần lớn phụ thuộc vào khách hàng cách định dạng mã SQL được thiết kế ngược.
Hàm là một ngoại lệ (một phần). Nội dung hàm được chuyển dưới dạng chuỗi và được lưu nguyên trạng , chính xác như đã thông qua, với (hiện tại) chỉ kiểm tra cú pháp bề ngoài và xác nhận các đối tượng. Nếu bạn muốn một cách nhanh chóng để "lưu" một truy vấn bao gồm cả định dạng của nó bên trong Postgres, bạn có thể sử dụng một hàm PL / pgSQL chẳng hạn.
Phương pháp chung là có một kho lưu trữ mã độc lập như @Mike đã được đề xuất - hoặc không quan tâm đến định dạng quá nhiều.