How can I insert an array of enums
?
Here is my enum
:
CREATE TYPE equipment AS ENUM ('projector','PAsystem','safe','PC','phone');
Then my table has an array of equipment:
CREATE TABLE lecture_room (
id INTEGER DEFAULT NEXTVAL('lecture_id_seq')
, seatCount int
, equipment equipment[]
) INHERITS(venue);
Here is my ATTEMPT to INSERT:
INSERT INTO lecture_room (building_code, floorNo, roomNo, length, width
, seatCount, equipment)
VALUES
('IT', 4, 2, 10, 15 ,120, ARRAY['projector','PAsystem','safe']),
But it gives me the following error:
ERROR: column "equipment" is of type equipment[] but expression is of type text[] SQL state: 42804 Hint: You will need to rewrite or cast the expression.
PostgreSQL doesn't know how to automatically cast input of type text
to input of type equipment
. You have to explicitly declare your strings as being of type equipment
:
ARRAY['projector','PAsystem','safe']::equipment[]
I confirmed this with SQL Fiddle.