sql - 排除某些值的 SQL 约束?
问题描述
是否存在允许您在列中禁止某些值的 sql 约束?
例如
ALTER TABLE foo
ADD COLUMN code TEXT NOT NULL UNIQUE DISALLOW '<GENERATE>'
;
st<GENERATE>
可以在应用程序中安全地使用,以指示应该在持久化之前生成该值,而不会有意外将其推送到数据库的风险?
解决方案
您需要一个检查约束:
ALTER TABLE foo
ADD COLUMN code TEXT NOT NULL UNIQUE;
alter table foo
add constraint disallow_generate
check (code <> '<GENERATE>');
如果要禁止多个值,请使用 NOT IN 条件:
alter table foo
add constraint disallow_generate
check (code not in ('<GENERATE>', '<GENERATED>', 'foo');
推荐阅读
- c# - 尝试打开指向 API 返回的 PDF 的超链接时,MS Word 显示“无法打开指定的文件”错误
- swift - 为什么当我按下按钮时我的 UILabel 没有改变?
- unity3d - 设置自定义排序点(不更改枢轴)?
- javascript - 在javascript中嵌套对象数组
- reactjs - React Hooks: skip re-render on multiple consecutive setState calls
- python - 从 Python 列表中去除单引号
- java - java代码中的NoSuchField错误但字段存在
- sql - SQL 我不明白我的触发器出了什么问题
- python - 如何使用 PyQT5 中的按钮单击在单独的窗口中打开图像?
- python - 在图像的所有 3 通道中查找具有特定值的像素