PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

zapisywalne wspólne wyrażenie tabelowe i wielokrotne instrukcje wstawiania

Możesz użyć CTE, jeśli chcesz to wszystko w jednym oświadczeniu:

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

Uwagi:

  • Należy dołączyć listy kolumn za pomocą insert .
  • Nazwy kolumn należy określić jasno dla select * . Jest to ważne, ponieważ kolumny w obu tabelach mogą się nie zgadzać.
  • Zawsze używam returning z update /insert /delete w CTE. Jest to normalny przypadek użycia - możesz na przykład odzyskać identyfikatory seryjne z wstawki.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Pobieraj agregaty dla dowolnych przedziałów czasu

  2. Konwersja liczby całkowitej na Enum w PostgreSQL

  3. Aplikacja Django w kontenerze Docker nie może znaleźć postgres

  4. Ile rekordów mogę przechowywać w 5 MB PostgreSQL w Heroku?

  5. Zapytanie Rails Postgres, wybierające tylko elementy, które pojawiają się we wszystkich parametrach wyszukiwania z asocjacjami