PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Thêm một cột mới trong một bảng tạm thời

Bạn muốn ALTER TABLE ... THÊM CỘT theo sau là UPDATE .

Lúc đầu, tôi nói ALTER TABLE ... ADD COLUMN ... USING nhưng điều đó đã sai ở hai số. THÊM CỘT lấy DEFAULT không phải SỬ DỤNG - và Bạn không thể làm điều đó trong một lần vì không phải DEFAULT biểu thức cũng không phải là SỬ DỤNG biểu thức có thể không tham chiếu đến các cột khác.

Vì vậy, bạn phải làm:

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

Hãy suy nghĩ cẩn thận về việc số 0 nên là "Ghi nợ" hay "Tín dụng" và điều chỉnh CASE theo đó.

Để làm tròn, hãy sử dụng vòng (số tiền, 2) . Không có đủ chi tiết trong câu hỏi của bạn để tôi chắc chắn về cách thức; có lẽ bởi UPDATE nhập bảng tạm thời với CẬP NHẬT bảng SET số tiền =vòng (số tiền, 2) nhưng nếu không có bối cảnh thì thật khó để biết liệu điều đó có đúng hay không. Tuyên bố đó ném thông tin đi không thể đảo ngược vì vậy nó chỉ nên được sử dụng trên một bản sao dữ liệu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres Alter Column Integer thành Boolean

  2. Sắp xếp tổng hợp văn bản được tạo bằng array_agg trong postgresql

  3. Cải thiện hiệu suất của các truy vấn Postgres jsonb kết hợp với các truy vấn quan hệ

  4. Làm cách nào để di chuyển thuộc tính mô hình ActiveRecord từ json sang jsonb?

  5. Heroku pg:psql ngừng hoạt động