sql >> データベース >  >> RDS >> PostgreSQL

一時テーブルに新しい列を追加する

    ALTER TABLE ... ADD COLUMN> 続いてUPDATE

    私は最初にALTERTABLE ... ADD COLUMN ... USINGと言いました しかし、それは2つの点で間違っていました。 ADD COLUMN DEFAULTを取ります USINGではありません - DEFAULT でもないため、1回のパスで実行することはできません。 式も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) 。あなたの質問には、その方法を確認するのに十分な詳細がありません。おそらくUPDATE UPDATE thetable SET amount =round(amount、2)を使用して一時テーブルを作成する しかし、文脈がなければ、それが正しいかどうかを知るのは難しいです。 そのステートメントは情報を不可逆的に破棄します したがって、データのコピーでのみ使用する必要があります。




    1. Mysql-自動インクリメントを使用したキーの重複エントリエラー

    2. 配列された入力値は、mysqlに空のレコードを挿入します

    3. foreach値をAjaxに追加します

    4. mysqlのwhere句でエイリアスを使用する方法