PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

записваем общ табличен израз и множество изрази за вмъкване

Можете да използвате CTE, ако искате всичко това в един израз:

with foo as (
      select * from ...
     ),
     b as (
      insert into bar
          select * from foo
          returning *
     )
insert into baz
    select * from foo;

Бележки:

  • Трябва да включите списъци с колони с insert .
  • Трябва да посочите имената на колоните изрично за select * . Това е важно, защото колоните може да не съвпадат в двете таблици.
  • Винаги използвам returning с update /insert /delete в CTE. Това е нормалният случай на употреба -- така че можете да получите обратно серийни идентификатори от вмъкване например.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. За какво са полезни ПРАВИЛАТА на PostgreSQL?

  2. При вмъкване:референтният резултат на колона е двусмислен

  3. Премахнете дублиращата се колона след SQL заявка

  4. Създаване на съхранени процедури с SQLAlchemy

  5. Извличане на коментари от PostgreSQL DB