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

Pro smyčku s názvem dynamické tabulky v Postgresql 9.1?

V plpgsql embedded SQL nikdy nemůžete použít proměnnou jako identifikátor tabulky nebo sloupce. Řešením jsou dynamické příkazy SQL - EXECUTE nebo FOR IN EXECUTE:

DO $$
DECLARE
  tables text[] = ARRAY['table1','table2'];
  table_name text;
  rec record;
BEGIN
  FOREACH table_name IN ARRAY tables
  LOOP
    FOR r IN EXECUTE format('SELECT * FROM %I', table_name)
    LOOP
      RAISE NOTICE '%', rec;
    END LOOP; 
  END LOOP;
END; $$



  1. Proč má klauzule Oracle IN limit 1000 pouze pro statická data?

  2. Příkaz CREATE byl uživateli odepřen?

  3. Je naprosto bezohledné nechat připojení mysql otevřené přes stránku?

  4. SQL dotaz pro výběr dat mezi dvěma daty