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

Vòng lặp for với tên bảng động trong Postgresql 9.1?

Bạn không thể sử dụng một biến làm mã định danh bảng hoặc cột trong SQL nhúng plpgsql. Một giải pháp là câu lệnh SQL động - EXECUTE hoặc 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Tại sao truy vấn của tôi liên quan đến phép chia và COUNT luôn cho kết quả là 1?

  2. Trong PostgreSQL, làm thế nào chúng ta có thể biết liệu mỗi chỉ mục của một bảng có được phân nhóm hay không?

  3. Thay đổi kiểu dữ liệu cột từ Văn bản thành Số nguyên trong PostgreSQL

  4. Ngăn các chuỗi trống trong trường CHARACTER VARYING

  5. Mười cách để mở rộng chức năng của PostgreSQL