postgresql - 无法在 postgresql 中添加检查约束
问题描述
我正在使用postgesql。
我已经创建了一个数据库和表。但是,在其中一个表中,我想添加一个约束,但它不起作用。我想将列中的值设置is_official
为仅 T 或 F。
ALTER TABLE countrylanguage
ALTER COLUMN is_official
ADD CONSTRAINT conchk
CHECK (is_official IN ('T','F'));
解决方案
检查约束不是在列上定义的,而是在表上定义的。因此,alter column
当您尝试定义检查约束时,该部分无效:
ALTER TABLE countrylanguage
ADD CONSTRAINT conchk CHECK (is_official IN ('T','F'));
但是,最好将列定义is_official
为boolean
而不是带有检查约束的text
(or varchar
) 来模拟真实boolean
列。
推荐阅读
- angular - 错误:未找到 [object Object] 的组件工厂
- python - 没有名为“sklearn.cross_validation”的模块
- hive - Hive Map-Join 配置之谜
- mongodb - 如何在按 MongoDB 中的另一个字段分组时聚合时间序列数据?
- python - 从字典中调用的字符串是无效的语法?- 蟒蛇 3
- python - 操作列表(URL)中的值 - Python
- php - 用于登录/注销的 PHP 代码无法正常工作 - PHP
- javascript - 如何使用堆栈操作重置反应导航中的路线?
- mysql - FIND_IN_SET 或 SELECT * FROM
- c - 将两个字符从字符串移动到另一个字符串出错