PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

lỗi:ALTER TYPE ... ADD không thể chạy bên trong khối giao dịch

Như đã đề cập ở trên, bạn không thể chỉnh sửa enum trong khối giao dịch. Nhưng bạn có thể tạo một cái mới. Dưới đây là các bước:

  1. Thay đổi loại từ request_type tới varchar cho tất cả các cột / bảng sử dụng loại này:
ALTER TABLE table_name
    ALTER COLUMN column_name TYPE VARCHAR(255);
  1. Thả và tạo lại request_type enum:
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. Hoàn nguyên loại từ varchar tới request_type cho tất cả các cột / bảng (hoàn nguyên bước một):
ALTER TABLE table_name
    ALTER COLUMN column_name TYPE request_type
    USING (column_name::request_type);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách tách văn bản bằng chuỗi con

  2. Cách tìm các bản ghi trùng lặp trong PostgreSQL

  3. Giới thiệu về PostgreSQL

  4. Thứ tự các bản ghi trong bảng có khóa chính tổng hợp là gì

  5. Cách tạm dừng việc thực thi một câu lệnh trong PostgreSQL