PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

ekspresi tabel umum yang dapat ditulis dan beberapa pernyataan sisipan

Anda dapat menggunakan CTE, jika Anda menginginkan ini semua dalam satu pernyataan:

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

Catatan:

  • Anda harus menyertakan daftar kolom dengan insert .
  • Anda harus menentukan nama kolom secara eksplisit untuk select * . Ini penting karena kolom mungkin tidak cocok di kedua tabel.
  • Saya selalu menggunakan returning dengan update /insert /delete di CTE. Ini adalah kasus penggunaan normal -- misalnya, Anda bisa mendapatkan id serial dari sisipan.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ClassCastException:Integer tidak dapat dilemparkan ke Long, saat mencoba mengulangi ID entitas

  2. Migrasi Django :relasi sudah ada

  3. Bagaimana menemukan semua produk dengan nilai multi atribut tertentu

  4. Tidak ada liblwgeom saat menggunakan postgresql84 dan postgis di Snow Leopard dengan MacPorts

  5. Mengapa perintah \dt memberikan - tidak ada hubungan yang ditemukan?