PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Добавяне на нова колона във временна таблица

Искате ПРОМЕНЯВАНЕ НА ТАБЛИЦА ... ДОБАВЯНЕ НА КОЛОНА последвано от АКТУАЛИЗАЦИЯ .

Първоначално казах ALTER TABLE ... ADD COLUMN ... USING но това беше погрешно по две причини. ДОБАВЯНЕ НА КОЛОНА приема DEFAULT не ИЗПОЛЗВАНЕ - и не можете да го направите с едно преминаване, защото нито DEFAULT израз, нито USING изразът може да не препраща към други колони.

Така че трябва да направите:

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

Помислете внимателно дали нулата трябва да бъде „Дебит“ или „Кредит“ и коригирайте CASE съответно.

За закръгляване използвайте round(amount,2) . Във въпроса ви няма достатъчно подробности, за да съм сигурен как; вероятно от АКТУАЛИЗАЦИЯ добавяне на временната таблица с АКТУАЛИЗИРАНЕ на таблицата SET сума =кръг (количество,2) но без контекста е трудно да се разбере дали това е правилно. Това твърдение необратимо изхвърля информация така че трябва да се използва само върху копие на данните.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgresql:Как да избягам от единичните кавички в тригера на базата данни?

  2. ГРЕШКА:дублираната стойност на ключ нарушава уникалното ограничение в postgreSQL

  3. Изчислете средната стойност от JSON колона

  4. Връщане на редове от INSERT с ON CONFLICT без необходимост от актуализиране

  5. PGError:ГРЕШКА:разрешение е отказано за връзка (при използване на Heroku)