PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Zmiana typu kolumny używanej w innych widokach

Myślę, że robi to, co chcesz, chociaż przeniosłem listę widoków na koniec argumentów, aby była kompatybilna z semantyką VARIADIC.

CREATE OR REPLACE FUNCTION recreate_views(run_me text, VARIADIC views text[])
  RETURNS void
AS  $$
DECLARE
  view_defs text[];
  i integer;
  def text;
BEGIN
  for i in array_lower(views,1) .. array_upper(views,1) loop
    select definition into def from pg_views where viewname = views[i];
    view_defs[i] := def;
    EXECUTE 'DROP VIEW ' || views[i];
  end loop;

  EXECUTE run_me;

  for i in reverse array_upper(views,1) .. array_lower(views,1) loop
    def = 'CREATE OR REPLACE VIEW ' || quote_ident( views[i] ) || ' AS ' || view_defs[i];
    EXECUTE def;
  end loop;

END
$$
LANGUAGE plpgsql;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Skrypt testowy współbieżności transakcji dla postgresql

  2. Notacja z podwójnym dwukropkiem (::) w SQL

  3. Django:Jakie są najlepsze praktyki migracji projektu z sqlite do PostgreSQL?

  4. Czy można podać parametry dla nazwy tabeli lub kolumny w przygotowanych instrukcjach lub w QueryRunner.update()?

  5. Wybierz wiele wartości wierszy w jednym wierszu z klauzulami wielu tabel