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

Nhận danh sách tất cả các bảng đã sử dụng trong truy vấn Postgresql SELECT

Hãy thử:

create or replace function get_query_tables(p_query text) returns text[] language plpgsql as $$
declare
  x xml;
begin
  execute 'explain (format xml) ' || p_query into x;
  return xpath('//explain:Relation-Name/text()', x, array[array['explain', 'http://www.postgresql.org/2009/explain']])::text[];
end $$;

select get_query_tables('your query here');

dbfiddle



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ràng buộc được xác định CÓ THỂ XÁC ĐỊNH BAN ĐẦU NGAY LẬP TỨC vẫn bị XÁC ĐỊNH?

  2. Cách kết nối với cơ sở dữ liệu Heroku PostgreSQL của tôi từ Java

  3. Cách xác định các vấn đề về hiệu suất PostgreSQL với các truy vấn chậm

  4. Cách cập nhật nhiều cột trong PostgreSQL

  5. Yêu cầu bị kẹt trong PG ::Connection # async_exec