sql >> Databáze >  >> RDS >> PostgreSQL

Získejte seznam všech použitých tabulek v dotazu SELECT Postgresql

Zkuste:

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. Jaký je účel tohoto druhu injekce SQL?

  2. SQL pro získání odlišného záznamu pro kombinaci dvou sloupců (bez ohledu na pořadí)

  3. Chyba syntaxe poblíž 'of' v podmínce fulltextového vyhledávání 'control of'

  4. Error:Key ... není přítomen v tabulce