2014-09-17 16 views
11

Tôi đã tìm cách thêm giá trị vào TYPE. Nhưng làm thế nào tôi có thể loại bỏ giá trị từ nó?
Ví dụ: tôi có TYPE với enum giá trị ('A','B','C'). Làm thế nào để loại bỏ 'C'?Cách thay đổi loại và xóa giá trị trong postgresql

+0

Nếu bạn cần phải làm điều đó, một 'enum' có lẽ là nhất sự lựa chọn sai ở nơi đầu tiên. Sử dụng một bảng thứ hai và một khóa nước ngoài giữa hai bảng –

+1

Có thể trùng lặp của [Làm thế nào để xóa một loại enum trong postgres?] (Http://stackoverflow.com/questions/25811017/how-to-delete-an-enum- loại-in-postgres) – Kev

Trả lời

21

Để loại bỏ giá trị ('VAL1') từ enum ('enum_test'), bạn có thể sử dụng:

DELETE FROM pg_enum 
WHERE enumlabel = 'val1' 
AND enumtypid = (
    SELECT oid FROM pg_type WHERE typname = 'enum_test' 
) 
+0

Điều đó hoạt động như một sự quyến rũ !! Cảm ơn –

+0

Rất gọn gàng và ngắn gọn, do đó ít xảy ra lỗi hơn. Cảm ơn rất nhiều ! – cgte

Các vấn đề liên quan