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

Postgresqlは列タイプをintからUUIDに変更します

    int4をuuidにキャストすることはできません。これは無効なuuidであり、32ビットのみが設定されており、上位96ビットはゼロです。

    整数を完全に置き換えるために新しいUUIDを生成する場合、およびそれらの整数への既存の外部キー参照がない場合は、実際に新しい値を生成する偽のキャストを使用できます。

    これを実行しないでください データのバックアップなし。 colAの古い値を永久に破棄します 。

    ALTER TABLE tableA ALTER COLUMN colA SET DATA TYPE UUID USING (uuid_generate_v4());
    

    より良いアプローチは、通常、追加することです。 uuid列を作成し、それを指すように外部キー参照を修正して、最後に元の列を削除します。

    UUIDモジュールをインストールする必要があります:

    CREATE EXTENSION "uuid-ossp";
    

    引用符は重要です。



    1. CASCADEDELETEを1回だけ

    2. SQLiteデータベースの特定の行を削除するにはどうすればよいですか?

    3. 行を削除しようとしたときにSQLite例外が発生しました

    4. SQL Serverで「datetime2」を「datetime」に変換します(T-SQLの例)