【ClickHouse问题】更新表字段类型为Nullable(Int32)的列值,最终结果都是固定一个值:93147008???
问题描述:
clickhouse更新表数据。更新的列数据类型是Nullable(Int32),不管更新为什么数值,最后查询的结果都是一个固定值:93147008
问题复现:
1:建一张测试表
CREATE TABLE sys_user_menu_relationships_test2
(
`id` Int32,
`userId` Nullable(String),
`rightId` Nullable(Int32),
`onlyread` Int32,
`selectFlag` Int32,
`insertFlag` Nullable(Int32),
`deleteFlag` Nullable(Int32),
`updateFlag` Nullable(Int32),
`downloadFlag` Nullable(Int32)
)
ENGINE = MergeTree
ORDER BY id
SETTINGS index_granularity = 8192;
2:插入几条数据
INSERT INTO sys_user_menu_relationships_test2(id,userId,rightId ,onlyread ,selectFlag ,insertFlag,deleteFlag ,updateFlag ,downloadFlag ) VALUES (1,'101',1,2,3,4,5,6,7);
INSERT INTO sys_user_menu_relationships_test2(id,userId,rightId ,onlyread ,selectFlag ,insertFlag,deleteFlag ,updateFlag ,downloadFlag ) VALUES (2,'102',1,2,3,4,5,6,7);
INSERT INTO sys_user_menu_relationships_test2(id,userId,rightId ,onlyread ,selectFlag ,insertFlag,deleteFlag ,updateFlag ,downloadFlag ) VALUES (3,'103',1,2,3,4,5,6,7);
INSERT INTO sys_user_menu_relationships_test2(id,userId,rightId ,onlyread ,selectFlag ,insertFlag,deleteFlag ,updateFlag ,downloadFlag ) VALUES (4,'104',1,2,3,4,5,6,7);
INSERT INTO sys_user_menu_relationships_test2(id,userId,rightId ,onlyread ,selectFlag ,insertFlag,deleteFlag ,updateFlag ,downloadFlag ) VALUES (5,'105',1,2,3,4,5,6,7);
INSERT INTO sys_user_menu_relationships_test2(id,userId,rightId ,onlyread ,selectFlag ,insertFlag,deleteFlag ,updateFlag ,downloadFlag ) VALUES (6,'106',1,2,3,4,5,6,7);
3:查询数据
SELECT *
FROM sys_user_menu_relationships_test2 ┌─id─┬─userId─┬─rightId─┬─onlyread─┬─selectFlag─┬─insertFlag─┬─deleteFlag─┬─updateFlag─┬─downloadFlag─┐
│ 6 │ 106 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │
└────┴────────┴─────────┴──────────┴────────────┴────────────┴────────────┴────────────┴──────────────┘
┌─id─┬─userId─┬─rightId─┬─onlyread─┬─selectFlag─┬─insertFlag─┬─deleteFlag─┬─updateFlag─┬─downloadFlag─┐
│ 1 │ 101 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │
│ 2 │ 102 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │
│ 3 │ 103 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │
│ 4 │ 104 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │
│ 5 │ 105 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │
└────┴────────┴─────────┴──────────┴────────────┴────────────┴────────────┴────────────┴──────────────┘ 6 rows in set. Elapsed: 0.005 sec.
4:更新Int32列selectFlag (能正常更新,没有异常)
centf8118.sharding1.db :) ALTER TABLE sys_user_menu_relationships_test2 update selectFlag = 12 where id = 1; ALTER TABLE sys_user_menu_relationships_test2
UPDATE selectFlag = 12 WHERE id = 1 Ok. 0 rows in set. Elapsed: 0.003 sec. centf8118.sharding1.db :) SELECT * FROM sys_user_menu_relationships_test2; SELECT *
FROM sys_user_menu_relationships_test2 ┌─id─┬─userId─┬─rightId─┬─onlyread─┬─selectFlag─┬─insertFlag─┬─deleteFlag─┬─updateFlag─┬─downloadFlag─┐
│ 6 │ 106 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │
└────┴────────┴─────────┴──────────┴────────────┴────────────┴────────────┴────────────┴──────────────┘
┌─id─┬─userId─┬─rightId─┬─onlyread─┬─selectFlag─┬─insertFlag─┬─deleteFlag─┬─updateFlag─┬─downloadFlag─┐
│ 1 │ 101 │ 1 │ 2 │ 12 │ 4 │ 5 │ 6 │ 7 │
│ 2 │ 102 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │
│ 3 │ 103 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │
│ 4 │ 104 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │
│ 5 │ 105 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │
└────┴────────┴─────────┴──────────┴────────────┴────────────┴────────────┴────────────┴──────────────┘ 6 rows in set. Elapsed: 0.006 sec.
5:更新Nullable(Int32)列downloadFlag (见证奇迹的时刻,注意这次更新的值为12)
centf8118.sharding1.db :) ALTER TABLE sys_user_menu_relationships_test2 update downloadFlag= 12 where id = 3; ALTER TABLE sys_user_menu_relationships_test2
UPDATE downloadFlag = 12 WHERE id = 3 Ok. 0 rows in set. Elapsed: 0.003 sec. centf8118.sharding1.db :) SELECT * FROM sys_user_menu_relationships_test2; SELECT *
FROM sys_user_menu_relationships_test2 ┌─id─┬─userId─┬─rightId─┬─onlyread─┬─selectFlag─┬─insertFlag─┬─deleteFlag─┬─updateFlag─┬─downloadFlag─┐
│ 6 │ 106 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │
└────┴────────┴─────────┴──────────┴────────────┴────────────┴────────────┴────────────┴──────────────┘
┌─id─┬─userId─┬─rightId─┬─onlyread─┬─selectFlag─┬─insertFlag─┬─deleteFlag─┬─updateFlag─┬─downloadFlag─┐
│ 1 │ 101 │ 1 │ 2 │ 12 │ 4 │ 5 │ 6 │ 7 │
│ 2 │ 102 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │
│ 3 │ 103 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 93147008 │
│ 4 │ 104 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │
│ 5 │ 105 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │
└────┴────────┴─────────┴──────────┴────────────┴────────────┴────────────┴────────────┴──────────────┘ 6 rows in set. Elapsed: 0.006 sec.
更新完之后,就看到id = 3的downloadFlag列那个值是:93147008
6:再更新Nullable(Int32)列 updateFlag (见证奇迹的时刻2,注意这次更新的值为34)
centf8118.sharding1.db :) ALTER TABLE sys_user_menu_relationships_test2 update updateFlag= 34 where id = 3; ALTER TABLE sys_user_menu_relationships_test2
UPDATE updateFlag = 34 WHERE id = 3 Ok. 0 rows in set. Elapsed: 0.004 sec. centf8118.sharding1.db :) SELECT * FROM sys_user_menu_relationships_test2; SELECT *
FROM sys_user_menu_relationships_test2 ┌─id─┬─userId─┬─rightId─┬─onlyread─┬─selectFlag─┬─insertFlag─┬─deleteFlag─┬─updateFlag─┬─downloadFlag─┐
│ 6 │ 106 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │
└────┴────────┴─────────┴──────────┴────────────┴────────────┴────────────┴────────────┴──────────────┘
┌─id─┬─userId─┬─rightId─┬─onlyread─┬─selectFlag─┬─insertFlag─┬─deleteFlag─┬─updateFlag─┬─downloadFlag─┐
│ 1 │ 101 │ 1 │ 2 │ 12 │ 4 │ 5 │ 6 │ 7 │
│ 2 │ 102 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │
│ 3 │ 103 │ 1 │ 2 │ 3 │ 4 │ 5 │ 93147008 │ 93147008 │
│ 4 │ 104 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │
│ 5 │ 105 │ 1 │ 2 │ 3 │ 4 │ 5 │ 6 │ 7 │
└────┴────────┴─────────┴──────────┴────────────┴────────────┴────────────┴────────────┴──────────────┘ 6 rows in set. Elapsed: 0.009 sec.
问题来了,为什么数据类型为Nullable(Int32)列,更新的时候不管怎么更新都是固定的一个值:93147008???
有哪位大神知道为啥???
【ClickHouse问题】更新表字段类型为Nullable(Int32)的列值,最终结果都是固定一个值:93147008???的更多相关文章
- 使用SQL语句查询表及表字段类型说明
今天突然遇到有人要数据库表及表字段说明,数据库表太多又不能一个个表去找,就想想SQL是否能直接查询出来. 经过查询资料,加上一些自己的一些调整写了一个sql语句,在此记录一下,以方便日后查找使用. S ...
- 通过jdbc获取数据库中的表结构 主键 各个表字段类型及应用生成实体类
http://www.cnblogs.com/lbangel/p/3487796.html 1.JDBC中通过MetaData来获取具体的表的相关信息.可以查询数据库中的有哪些表,表有哪些字段,字段的 ...
- SqlBulkCopy 批量导入数据 转换表字段类型
在使用SqlBulkCopy导入数据时,要有一个跟数据库里面同样的DataTable 要赋值表名 要求每个列跟数据库中列同名,并且列的类型要赋值跟数据库中列的类型对应的NET类型 要求数据库中为Nul ...
- Oracle更新表字段时内容中含有特殊字符&的解决方法
今天在做 Oracle表字段更新时出现了特殊字符&,导致无法更新. 这个问题是第二次碰到了,所以在此记录下,以备后用. 举例: update t set col1='A&B' wher ...
- MySQL建表字段类型
1.数据库:在MySQL中,要存储数据,必须从数据库开始,因此首先要创建数据库,但由于学校的MySQL服务器对学生数据帐号有限止,学生不得创建数据库,故每个学生的帐号中已事先由信息中心为大家建立了一个 ...
- 【Navicat】获取表结构的DDL语句以及获取更新表字段的操作的DDL
1.获取表结构的DDL语句 2.获取修改表结构某一字段的DDL语句 设计表-修改表字段(记住不要保存)-SQL预览
- oracle查看某表字段类型
来源:https://www.cnblogs.com/ufindme/p/5033843.html 今天遇到一个问题:要求在可重复执行的SQL脚本添加一段SQL代码:修改当前的数据类型.因为SQL代码 ...
- oracle 在表中有数据的情况下修改表字段类型或缩小长度
分享自己一些常用的sql语句给大家 偶尔我们需要在已有表,并且有数据的情况下,修改其某个字段的类型或缩短他的长度,但是因为表中有数据,所以不可以直接修改,需要换个思路. //建立测试表,可跳过(善于应 ...
- 修改非空表字段类型Oracle
执行以下语句报"要修改数据类型,则要更改的列必须为空" alter table 表名 modify (目标字段 varchar2(100)); 解决步骤: 第一步,在表 ...
- 解决:oracle+myBatis ResultMap 类型为 map 时,表字段类型有 Long/Blob/Clob 时报错
前言:最近在做一个通用查询单表的组件,所以 sql 的写法就是 select *,然后 resultType="map" .如果数据库中的表里有字段类型为 Long 等类型时,my ...
随机推荐
- Arrays类的常用方法
Arrays类的常用方法 Array数组的工具类java.util.Arrays Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而不用使用对象来调用 Ar ...
- 从零开始写 Docker(十四)---重构:实现容器间 rootfs 隔离
本文为从零开始写 Docker 系列第十四篇,实现容器间的 rootfs 隔离,使得多个容器间互不影响. 完整代码见:https://github.com/lixd/mydocker 欢迎 Star ...
- AIRIOT答疑第6期|如何使用二次开发引擎?
灵活扩展,满足客户定制化需求 AIRIOT物联网低代码平台提供丰富的前端.后台服务二次开发接口,具备灵活的组件服务部署与管理能力,对任何功能模块进行二次开发,满足客户各类二次开发需求.支持多种 ...
- Excel功能学习
字符串和单元格内容拼接函数CONCATENATE a@马踏星空:=CONCATENATE(D2,E2,F2)拼接指定单元格内字符串,无分隔符 a@马踏星空:=CONCATENATE(I4," ...
- 如果个人pc上要装不同社区版本的pycharm,安装时需要注意的一点
pycharm下载地址[包含了目前发行的所有版本]:https://www.jetbrains.com/pycharm/download/other.html 选择指定的版本,点击 勾选uninsta ...
- Immich让你从此告别百度网盘备份手机照片
一. Immich 是什么 Immich是一个开源的图片自托管服务,它能实现类似于百度网盘的照片自动备份.分类等功能,它同时提供了Web管理页面,和移动端APP,可以轻松备份手机中的照片至家庭服务器中 ...
- Sed 日常使用介绍
Sed 日常使用介绍 简介 sed 是 unix 环境下常用的流处理工具, 可以处理字符流, 文件或者二进制文件流. 各个 unix/linux 发行版都会配备 sed 及其衍生的命令工具, 因此, ...
- QShop商城-快速开始-前端
QShop商城-快速开始-前端 工具准备 NodeJs 前端环境为NodeJs,下载地址:http://nodejs.cn/download/current/ . 默认会用版本为Node 16,如找不 ...
- .NET 将多个程序集合并成单一程序集的 4+3 种方法
将 .NET 程序集与依赖合并到一起的方法有下面四种: 使用 .NET Core 3.0 自带的 PublishSingleFile 属性合并依赖使用 Fody使用 SourceYard 源代码包使用 ...
- Wpf UI框架 MaterialDesign 的使用记录
近期公司有桌面客户端的开发需求,并且对样式和界面反馈有一定的要求,对比各种开源UI框架后确认使用MaterialDesign . 1.引入框架MaterialDesignThemes,注意下对应的版本 ...