sqlite里执行查询提示未启用约束、主键冲突之——数据竟能超字段长度存储
2016-03-01 17:32
411 查看
数据表设计如图:szflbm为主键
数据表主键数据:
以上数据在查询时,执行到该语句adapter.Fill(table); 提示主键冲突。
解决:
1.尝试修改数据,把ZC1改成ZZ,正常。说明原因就是ZC和ZC1的原因。可明明这2个值不一样,为什么提示冲突。怀疑是不是建的表有问题,新建依旧如此。
2.突然发现主键字段长度为2,而数据表里数值竟能存2位(通常意义上的位数)。调整字段长度,执行成功了。
分析:
通过上面测试,猜想应该是在查询的时候把数据按2位长度进行了截取,导致两个ZC出现,进而冲突。
小疏忽,费了大脑筋。
数据表主键数据:
以上数据在查询时,执行到该语句adapter.Fill(table); 提示主键冲突。
解决:
1.尝试修改数据,把ZC1改成ZZ,正常。说明原因就是ZC和ZC1的原因。可明明这2个值不一样,为什么提示冲突。怀疑是不是建的表有问题,新建依旧如此。
2.突然发现主键字段长度为2,而数据表里数值竟能存2位(通常意义上的位数)。调整字段长度,执行成功了。
分析:
通过上面测试,猜想应该是在查询的时候把数据按2位长度进行了截取,导致两个ZC出现,进而冲突。
小疏忽,费了大脑筋。
相关文章推荐
- oracle中的术语
- 关系型数据库的ACID规则
- Redis 主从复制
- Oracle 11g必须开启的服务及服务详细介绍
- mysql字符集设置
- Nginx+Tomcat+Memcached集群
- postgreSql 中自定义的字段和数据库关键字重名
- sql 写法小总
- ubuntu MYSQL添加远程用户
- sqlite
- sql行列互换
- SqlServer:传递超长字符串参数时,参数被自动换行。
- MySQL server has gone away
- 高性能MySQL
- mysql中int、bigint、smallint 和 tinyint的区别与长度的含义
- 数据库
- oracle数据库中数据库名、实例名、数据库域名、全局数据库名、数据库服务名,ORACLE_SID
- 安装php扩展模块参数memcache和memcached在php中的应用
- oracle 迭代查询
- SQL Server基本概念