【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 ...
随机推荐
- Ubuntu 20.04 安装和配置MySql5.7的详细教程
Ubuntu 20.04 安装和配置MySql5.7的详细教程 https://www.jb51.net/article/202399.htm
- Win10-常用cmd命令与快捷键
以下全部是本人私认为平时经常用到的指令,持续更行中- 常用快捷键 win + R : 输入cmd回车,打开命令提示符界面 win + E : 打开文件资源管理器(俗称:文件夹) win + S : 搜 ...
- java学习之旅(day.12)
异常机制(Exception) 异常指程序运行中出现的不期而至的各种状况 异常分类: 检查性异常:用户输入错误引起的异常 运行时异常:写的时候未报错,但一运行就会报错, 错误(error):错误不是异 ...
- 网络性能评估工具Iperf详解
一.网络性能评估工具Iperf 网络性能评估主要是监测网络带宽的使用率,将网络带宽利用最大化是保证网络性能的基础,但是由于网络设计不合理.网络存在安全漏洞等原因,都会导致网络带宽利用率不高.要找到网络 ...
- Linux 磁盘、CPU、内存获取脚本
脚本 脚本 #!/bin/bash # 获取要监控的本地服务器IP地址 IP=`/usr/sbin/ifconfig | grep inet | grep -vE 'inet6|127.0.0.1' ...
- GROK 表达式
GROK 表达式 常用表达式 标识:USERNAME 或 USER 正则:[a-zA-Z0-9._-]+ 名称:用户名 描述:由数字.大小写及特殊字符(._-)组成的字符串 例子:1234.Bob.A ...
- Linux安装ElastSearch
Linux安装ES 准备好Linux系统,软件安装前需要对当前系统做一些优化配置 系统配置修改 一.内存优化 在/etc/sysctl.conf添加如下内容: fs.file-max=655360 系 ...
- phpstorm对laravel开发的配置
摘自:https://www.cnblogs.com/Richard-Tang/p/10218178.html phpstorm对laravel开发的配置 一.安装Laravel 1.下载comp ...
- Bear and String Distance
传送锚点: codeforces.com Copy 4 26 bear output roar input 2 7 af output db input 3 1000 hey output -1 思路 ...
- 日常Bug排查-MVCC和for update混用导致读数据不一致
日常Bug排查-MVCC和for update混用导致读数据不一致 前言 日常Bug排查系列都是一些简单Bug的排查.笔者将在这里介绍一些排查Bug的简单技巧,同时顺便积累素材. Bug现场 又是喜闻 ...