sql - 是否有一种可移植的方式来编写检查 TEXT 值是否为整数的 CHECK 约束?
问题描述
是否有一种可移植的方式来编写下面的 CHECK?
CREATE TABLE tbl (
id1 INTEGER NOT NULL,
id2 TEXT NOT NULL,
PRIMARY KEY (id1),
CHECK ('check that id2 is positive integer')
)
解决方案
不,没有可移植的方式来处理格式错误的数据。
话虽如此,每个数据库都有自己处理格式错误数据的方法。典型的解决方案是在检查约束中使用正则表达式。其他解决方案可以尝试将值转换为数字标量。所有这些解决方案都有效,但它们对每个数据库都有其怪癖。
如果可能,我建议您修复数据类型。这将大大简化所有这些令人头疼的问题。
推荐阅读
- vue.js - VueJS:循环内的计算属性
- c++ - `std::move` objects into constructor when returning composite type?
- vba - 访问表单 VBA - 每个人都有相同的代码
- scala - 使用 circe-config 进行配置的通用解析器
- java - 字符串转换为 LocalDate
- python-3.x - 更改 APScheduler 默认作业存储位置
- javascript - 带有反应js的聊天地图,数组内的对象
- c++ - 如何根据窗口的客户区相对于屏幕的位置设置 Direct Draw 裁剪器
- javascript - resourceGroupField 多级
- python - 如何使用 Beautifulsoup 解析网页上 {} 之间的信息