sql >> Database teknologi >  >> RDS >> PostgreSQL

Ændring af typen af ​​en kolonne, der bruges i andre visninger

Jeg tror, ​​at dette gør, hvad du vil, selvom jeg flyttede visningslisten til slutningen af ​​args for at være kompatibel med VARIADIC semantik.

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. Liquibase + Postgresql + Spring Jpa:Problem med automatisk id-forøgelse

  2. Lagring af en fil i postgres ved hjælp af node-postgres

  3. MySQL-forespørgsel for at udtrække det første ord fra et felt

  4. Hvordan kan jeg se alle de tilladte specialtegn i et varchar- eller char-felt i SQL Server?