sql - 如何在Postgres中实现列值变化约束

标签 sql postgresql constraints

我想确保列的值只能以定义的方式更改。示例是包含只能根据定义的状态转换更改的状态值的列,或者可以将 NULL 设置为仅一次的列。

我想避免在应用层实现这些检查。

我找不到使用常规约束的解决方案。是否有另一种方法可以实现该目标,或者数据库层是否有意不支持此类约束?

最佳答案

约束只能根据行的当前值执行规则(检查约束)
- 或不同表中相关行的当前状态之间的参照完整性(外键约束)
- 或在有限范围内对表中所有行的当前值(排除约束)。

您想在先前 状态和当前 状态之间实现约束。这通常用 trigger 实现.
示例:

SO 上有许多示例。 Try a search.

关于sql - 如何在Postgres中实现列值变化约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25038478/

相关文章:

mysql - 如何显示数据库mysql中的最新记录

sql - 查找包含相似字符串的sql记录

java - 如何设置约束来限制单个节点上特定类型的关系数量

ruby-on-rails - ActiveRecord 迁移不填充 Postgres 物化 View

ios - 如何使用 Swift 以编程方式增加 UIView 的高度

constraints - SystemVerilog 中一组变量的循环随机化

php - MySQL Query以某种方式显示信息

在存储过程中调用时,MYSQL SELECT 语句返回 null

java - 如何在 Hibernate 中使用 setParameter

sql - 从 postgres 中的十进制值中删除 (.)