Tôi có một số loại tùy chỉnh. Họ là tất cả các enums cơ bản. Dưới đây là một ví dụ về những gì họ trông giống như:Chèn vào các loại SQL tùy chỉnh với các câu lệnh đã chuẩn bị trong java
CREATE TYPE card_suit AS ENUM
('spades',
'clubs',
'hearts',
'diamonds');
Và tôi có một số báo cáo chuẩn bị trong Java, mà giống như thế này:
// Setup stuff up here.
sql = "INSERT INTO foo (suit) VALUES (?)";
st.setString(1, 'spades');
st.executeUpdate(sql);
Và Java cung cấp cho tôi một số trường hợp ngoại lệ khó chịu như thế này:
org.postgresql.util.PSQLException: ERROR: column "suit" is of type card_suit but expression is of type character varying
Hint: You will need to rewrite or cast the expression.
Thật tuyệt vời khi đưa ra gợi ý cho tôi, nhưng tôi không chắc chắn làm cách nào để theo dõi nó.
Nếu bạn có quyền kiểm soát của các lược đồ, một hạn chế kiểm tra trên một cột văn bản có thể làm việc giống như enum, nhưng dễ dàng hơn khi làm việc với Java. – Bill