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

Thay đổi loại cột được sử dụng trong các dạng xem khác

Tôi nghĩ rằng điều này sẽ làm những gì bạn muốn, mặc dù tôi đã di chuyển danh sách chế độ xem đến cuối args để tương thích với ngữ nghĩa 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. SQL:Trừ 1 ngày cho ngày dấu thời gian

  2. PostgresSQL Nested Loops - Khi nào người lập kế hoạch quyết định sử dụng Nested Loop khi thực hiện INNER JOIN?

  3. Sử dụng cột Bí danh trong mệnh đề where trong Postgresql

  4. Truy vấn N hàng liên quan cuối cùng trên mỗi hàng

  5. Tại sao PostgreSQL hợp nhất người dùng và nhóm thành vai trò?