database - Sqlite 列被分配了错误的数据类型值
问题描述
我在 sqlite 中有一个具有以下架构的表:
CREATE TABLE message(ITEM_ID TEXT, COUNTRY_ID TEXT, CODES INTEGER);
即使 CODES 是整数,我仍然可以将字符串数据插入到表中,如下所示:
insert into message values(124,'5','R')
我期待来自 sqlite 的错误。它不应该返回错误吗?
谢谢,
解决方案
SQLite 不以这种方式限制类型。SQLite FAQ有这样的说法;
SQLite 使用动态类型。它不强制执行数据类型约束。任何类型的数据都可以(通常)插入到任何列中。您可以将任意长度的字符串放入整数列、布尔列中的浮点数或字符列中的日期。您在 CREATE TABLE 命令中分配给列的数据类型不会限制可以将哪些数据放入该列。
这与(大多数)其他 SQL 数据库有所不同,您可能已经注意到,在测试数据库代码时需要格外小心。
推荐阅读
- c - 理解上的困惑 (char *) &((struct name *)0)->member)
- javascript - v-slot 在 VueJS 中始终未定义
- vb.net - 按住鼠标按钮时更改多个按钮的背景颜色?
- r - 从两个文件的两列中获取不常见的元素
- javascript - on 提交添加输入到表单而不是提交更新的表单 vanilla js
- php - 为什么我的 Recaptcha 在提交时失败?
- scala - 广播 Array[Row] 并在单独的包中使用它
- docker - 如何在 docker 容器内针对外部应用程序运行 cypress 测试
- java - JAXB 忽略 @XmlAttribute 注释
- seaborn - 如何并排绘制来自两个不同数据帧的计数图?