Xin chào Tôi dường như không thể có được một ràng buộc làm việc theo cách tôi mong đợi trong postgreSQL. Từ trong pgadmin tôi thực hiện truy vấn SQL sau.
-- Check: "TypeCheck"
-- ALTER TABLE "ComLog" DROP CONSTRAINT "TypeCheck";
ALTER TABLE "ComLog"
ADD CONSTRAINT "TypeCheck" CHECK ("Type" SIMILAR TO 'email|post|IRL|minutes');
COMMENT ON CONSTRAINT "TypeCheck" ON "ComLog" IS 'One of email|post|IRL|minutes';
Khi thực hiện điều này được chuyển đổi thành.
-- Check: "TypeCheck"
-- ALTER TABLE "ComLog" DROP CONSTRAINT "TypeCheck";
ALTER TABLE "ComLog"
ADD CONSTRAINT "TypeCheck" CHECK ("Type" ~ similar_escape('email|post|IRL|minutes'::text, NULL::text));
COMMENT ON CONSTRAINT "TypeCheck" ON "ComLog" IS 'One of email|post|IRL|minutes';
Tôi hy vọng điều này sẽ giới hạn đầu vào của tôi cho cột Loại vào một trong những bài đăng email IRL hoặc phút. Tuy nhiên, khi nhập dữ liệu bảng, ràng buộc này không thành công khi tôi nhập một trong các loại này. Cột Loại là loại ký tự. Có ai biết làm thế nào để sửa lỗi này. Cảm ơn.
CHECK (type in ('email','post','IRL','minutes')
?