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

エラー:ALTER TYPE...ADDはトランザクションブロック内で実行できません

    上で述べたように、トランザクションブロック内の列挙型を編集することはできません。ただし、新しいものを作成することはできます。手順は次のとおりです。

    1. タイプをrequest_typeから変更します varcharへ このタイプを使用するすべての列/テーブルの場合:
    ALTER TABLE table_name
        ALTER COLUMN column_name TYPE VARCHAR(255);
    
    1. ドロップして再作成request_type 列挙型:
    DROP TYPE IF EXISTS request_type;
    CREATE TYPE request_type AS ENUM (
        'OLD_VALUE_1',
        'OLD_VALUE_2',
        'NEW_VALUE_1',
        'NEW_VALUE_2'
    );
    
    1. タイプをvarcharから戻します request_typeへ すべての列/テーブルに対して(ステップ1を元に戻します):
    ALTER TABLE table_name
        ALTER COLUMN column_name TYPE request_type
        USING (column_name::request_type);
    


    1. Perconaサーバーをハイブリッドクラウドにデプロイする

    2. クエリビルダーのlaravelorderByRaw()

    3. 多くのレコードをMySQLに速く挿入する方法、Java?

    4. MySQLで自動インクリメントを使用した複合キーの定義