sql >> Database >  >> RDS >> PostgreSQL

beschrijfbare gemeenschappelijke tabeluitdrukking en meerdere invoeginstructies

U kunt CTE's gebruiken, als u dit allemaal in één verklaring wilt:

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

Opmerkingen:

  • U moet kolomlijsten opnemen met insert .
  • U moet de kolomnamen expliciet specificeren voor de select * . Dit is belangrijk omdat de kolommen in de twee tabellen mogelijk niet overeenkomen.
  • Ik gebruik altijd returning met update /insert /delete in CTE's. Dit is het normale gebruik -- dus u kunt bijvoorbeeld serie-ID's terughalen uit een insert.


  1. Oracle-tabeluitdrukking bij ophalen en bestellen

  2. Opvragen van rijtellingen, gescheiden op datumbereik

  3. Online/offline databasesynchronisatie - MySQL/PHP

  4. Hoe te controleren of een string een geldige DATE, TIME of DATETIME is