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

Cách ngăn PostgreSQL thay đổi các định nghĩa SQL được định dạng độc đáo của tôi

Đó 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 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.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Giám sát PostgreSQL chủ động (Góc nhà phát triển / Cố vấn)

  2. lỗi mật khẩu UTF node-postgres

  3. So sánh các công cụ cân bằng tải cho PostgreSQL

  4. Làm thế nào để sử dụng lớp pqxx ::stateless_cursor từ libpqxx?

  5. Làm cách nào để cài đặt pg gem của PostgreSQL trên Ubuntu?