问题描述:

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???的更多相关文章

  1. 使用SQL语句查询表及表字段类型说明

    今天突然遇到有人要数据库表及表字段说明,数据库表太多又不能一个个表去找,就想想SQL是否能直接查询出来. 经过查询资料,加上一些自己的一些调整写了一个sql语句,在此记录一下,以方便日后查找使用. S ...

  2. 通过jdbc获取数据库中的表结构 主键 各个表字段类型及应用生成实体类

    http://www.cnblogs.com/lbangel/p/3487796.html 1.JDBC中通过MetaData来获取具体的表的相关信息.可以查询数据库中的有哪些表,表有哪些字段,字段的 ...

  3. SqlBulkCopy 批量导入数据 转换表字段类型

    在使用SqlBulkCopy导入数据时,要有一个跟数据库里面同样的DataTable 要赋值表名 要求每个列跟数据库中列同名,并且列的类型要赋值跟数据库中列的类型对应的NET类型 要求数据库中为Nul ...

  4. Oracle更新表字段时内容中含有特殊字符&的解决方法

    今天在做 Oracle表字段更新时出现了特殊字符&,导致无法更新. 这个问题是第二次碰到了,所以在此记录下,以备后用. 举例: update t set col1='A&B' wher ...

  5. MySQL建表字段类型

    1.数据库:在MySQL中,要存储数据,必须从数据库开始,因此首先要创建数据库,但由于学校的MySQL服务器对学生数据帐号有限止,学生不得创建数据库,故每个学生的帐号中已事先由信息中心为大家建立了一个 ...

  6. 【Navicat】获取表结构的DDL语句以及获取更新表字段的操作的DDL

    1.获取表结构的DDL语句 2.获取修改表结构某一字段的DDL语句  设计表-修改表字段(记住不要保存)-SQL预览

  7. oracle查看某表字段类型

    来源:https://www.cnblogs.com/ufindme/p/5033843.html 今天遇到一个问题:要求在可重复执行的SQL脚本添加一段SQL代码:修改当前的数据类型.因为SQL代码 ...

  8. oracle 在表中有数据的情况下修改表字段类型或缩小长度

    分享自己一些常用的sql语句给大家 偶尔我们需要在已有表,并且有数据的情况下,修改其某个字段的类型或缩短他的长度,但是因为表中有数据,所以不可以直接修改,需要换个思路. //建立测试表,可跳过(善于应 ...

  9. 修改非空表字段类型Oracle

    执行以下语句报"要修改数据类型,则要更改的列必须为空"       alter table 表名 modify (目标字段 varchar2(100)); 解决步骤: 第一步,在表 ...

  10. 解决:oracle+myBatis ResultMap 类型为 map 时,表字段类型有 Long/Blob/Clob 时报错

    前言:最近在做一个通用查询单表的组件,所以 sql 的写法就是 select *,然后 resultType="map" .如果数据库中的表里有字段类型为 Long 等类型时,my ...

随机推荐

  1. hexo 博客插入本地图片时遇到的坑

    哈喽大家好,我是咸鱼. 最近一直在折腾博客的事,说是 hexo 极易上手,我觉得只仅限于在安装部署的时候,随着对 hexo 的深入使用,发现遇到的问题还是挺多的. 那今天来讲一下我在把本地图片插入到 ...

  2. kettle使用1-全表导入

    1.新建转换 2.DB连接中,新建数据库连接 3.在输入中,选择表输入 选择连接的数据库和查询的sql的数据 4.再输出中,选择表输出 5.按住shift,建立数据连接 6.匹配数据字段映射

  3. C语言:如何删除在可视化网页中未可见的内容(网页txt)

    我这个代码仅仅限制于在chrome浏览器中下载china daliy的网页中实现删除可视化内容,因为每个网页的超链接或者文本主内容分布不一样,但是学会了删除一个网页类型的不可视化内容之后,修改其他网页 ...

  4. mybaits-plus实现自定义字典转换

    需求:字典实现类似mybatis-plus中@EnumValue的功能,假设枚举类中应用使用code,数据库存储对应的value 思路:Mybatis支持对Executor.StatementHand ...

  5. PageOffice——动态填充Word模板并在线编辑

    说明:使用pageoffice动态给word模板填充数据,插入图片.excel.word格式的文件和创建表格 一.准备工作: 本地创建一个doc或者docx格式的文件,在文件中需要插入数据的地方设置以 ...

  6. 整理C语言预处理过程语法的实用方法与技巧

    预处理 目录 预处理 一.宏定义 数值宏常量 字符串宏常量 用define宏定义注释符号? 程序的编译过程 预处理中宏替换和去注释谁先谁后? 如何写一个不会出现问题的宏函数 do-while-zero ...

  7. C#老码农的职业生涯

    开头白 大家好,我是tibos,19年10月1号由深圳回武汉的码农,目前入职武汉福禄网络,最近刷到的年终总结也比较多,赶在这最后一天,我也来凑个热闹 心路历程 -> 菜鸟入江湖 13年开启码农的 ...

  8. MKV与MatroskaExtractor

    mkv封装格式相关内容可以参考:MKV 文件格式解析_Martyn哥的博客-CSDN博客_mkv 格式解析 本篇主要是用来记录MatroskaExtractor是如何解析EBML的,如何解析EBML ...

  9. 关于Embedded Resource的理解

    Embedded Resource .NET中使用外部资源时常用的方式都是使用资源文件,作为程序集的一部分发布.资源文件的读取也比较方便,字符串.图片和任何二进制数据,包括任何类型的文件都可以作为资源 ...

  10. Nacos 源码环境搭建

    最近在学习nacos,通过调式源码查看服务注册和发现流程和原理,本地部署naos源码需要一定的步骤,本文主要做nacos源码部署. nacos版本:2.1.1 下载源码 从github上下载源码到本地 ...