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

Menambahkan kolom baru di tabel sementara

Anda ingin ALTER TABLE ... ADD COLUMN diikuti dengan UPDATE .

Saya awalnya mengatakan ALTER TABLE ... ADD COLUMN ... USING tapi itu salah dalam dua hal. ADD COLUMN mengambil DEFAULT bukan USING - dan Anda tidak dapat melakukannya dalam sekali jalan karena tidak ada DEFAULT ekspresi atau USING ekspresi tidak boleh merujuk ke kolom lain.

Jadi Anda harus melakukan:

 ALTER TABLE tablename ADD COLUMN colname varchar;
 UPDATE tablename SET colname = ( CASE WHEN othercol < 0 THEN 'Credit' ELSE 'Debit' END );

Pikirkan baik-baik apakah nol harus 'Debit' atau 'Kredit' dan sesuaikan CASE sesuai.

Untuk pembulatan, gunakan round(amount,2) . Tidak ada cukup detail dalam pertanyaan Anda bagi saya untuk memastikan caranya; mungkin dengan UPDATE ing tabel temp dengan UPDATE thetable SET amount = round(amount,2) tetapi tanpa konteksnya, sulit untuk mengetahui apakah itu benar. Pernyataan itu membuang informasi secara permanen jadi itu hanya boleh digunakan pada salinan data.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Bagaimana cara melakukan kueri PostgreSQL dengan klausa where-in yang berisi banyak kolom secara terprogram?

  2. ActiveRecord::PernyataanTidak Valid. Kesalahan PG

  3. Optimasi Kueri di PostgreSQL. JELASKAN Dasar-dasar – Bagian 3

  4. Menggunakan PostgresSQL INTERVAL di SQLAlchemy di mana durasi disimpan secara dinamis dalam DB dan bukan merupakan parameter

  5. PostgreSQL:meningkatkan pg_dump, kinerja pg_restore