gpt4 book ai didi

sql - 在 Postgres 中,如何限制特定列的可能值?

转载 作者:行者123 更新时间:2023-11-29 11:06:00 25 4
gpt4 key购买 nike

我想在表(称为 discussion)中创建一个列 element_type,它允许文本值“lesson”或“quiz”,但如果有的话会产生错误其他值插入该列。

我知道我可以创建一个名为 element_types 的单独表,其中包含列 element_id(主键,整数)和 element_type(唯一,文本) 并在表 discussion 中创建外键 foreign_element_id 引用 element_types 的列 element_id。或者,我可以完全忘记 element_id,只将 element_type 设置为主键。但我想避免创建新表。

有没有更直接的方法来限制列中的可能值而无需创建新表?

最佳答案

您可以添加 CHECK CONSTRAINT:

ALTER TABLE distributors 
ADD CONSTRAINT check_types
CHECK (element_type = 'lesson' OR element_type = 'quiz');

虽然 IMO 更清洁的选择是创建一个 ENUM :

CREATE TYPE element_type AS ENUM ('lesson', 'quiz');

关于sql - 在 Postgres 中,如何限制特定列的可能值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7250939/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com