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

PostgreSQL8.4で列のデータ型を文字から数値に変更する方法

    USINGを使用してみてください :

    オプションのUSING 句は、古い列の値から新しい列の値を計算する方法を指定します。省略した場合、デフォルトの変換は、古いデータ型から新しいデータ型にキャストされた割り当てと同じです。 USING 古いタイプから新しいタイプへの暗黙的または割り当てキャストがない場合は、句を指定する必要があります。

    したがって、これは機能する可能性があります(データによって異なります):

    alter table presales alter column code type numeric(10,0) using code::numeric;
    -- Or if you prefer standard casting...
    alter table presales alter column code type numeric(10,0) using cast(code as numeric);
    

    codeに何かがあると、これは失敗します 数値にキャストすることはできません。 USINGが失敗した場合は、列タイプを変更する前に、数値以外のデータを手動でクリーンアップする必要があります。



    1. MySQLデータベース/テーブル/列がどの文字セットであるかを確認するにはどうすればよいですか?

    2. SQLSTATE[HY000][2002]接続に失敗しました。-ローカルサーバーからリモートサーバーに接続しようとしたとき

    3. SQLServerで外部キーを持つすべてのテーブルを返す7つの方法

    4. SSISパッケージを使用してSQLServerからExcelおよびテキストファイルにデータをエクスポートする