Mwkk
(Ti D Ber A Cla Yr Lb)
1
【 TiDB 使用环境】生产环境 /测试/ Poc
【 TiDB 版本】
【复现路径】做过哪些操作出现的问题
【遇到的问题:问题现象及影响】
【资源配置】进入到 TiDB Dashboard -集群信息 (Cluster Info) -主机(Hosts) 截图此页面
【附件:截图/日志/监控】
TiDB 版本4.0.8,添加唯一索引时报错
表结构为
CREATE TABLE operation_custom_tag_entity_new
(
id
bigint(20) NOT NULL AUTO_INCREMENT,
tag_id
bigint(20) DEFAULT NULL,
base_id
bigint(20) DEFAULT NULL,
entity_type
int(11) DEFAULT NULL COMMENT ‘类型 实体关联表’,
qipu_id
bigint(20) DEFAULT NULL COMMENT ‘奇谱ID’,
tag_name
varchar(50) DEFAULT NULL COMMENT ‘自定义标签名称’,
source_sub_type
varchar(100) DEFAULT NULL COMMENT ‘标签来源类型’,
PRIMARY KEY (id
),
KEY idx_base_id
(base_id
),
KEY idx_tag_id
(tag_id
),
KEY idx_qipuId
(qipu_id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin AUTO_INCREMENT=923060000
查询qipu_id 字段为’'的值时,有4个warings, 应该是有数据被截断,想问如何查到这4条脏数据
理论上不管乐观事务还是悲观事务,都无法脏读。
要将事务隔离级别,设置为这个吗,没有试过
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
WalterWj
(王军 - PingCAP)
3
session 级别修改 sql mode 为空,然后查查看呢
还有,你是不是
tag_name
列为空啊
WalterWj
(王军 - PingCAP)
7
null 无所谓,null 不影响唯一索引,主要你是不是 name 列有 ‘’ 的导致有问题啊。
正常 int 类型是转为 0 的。如果 insert ‘’
WalterWj
(王军 - PingCAP)
10
id 查下 0 看看
表 admin check 下看看
WalterWj
(王军 - PingCAP)
11
数据量不大的话 这样查一下:
(root@10.102.58.180) [test]>SELECT qipu_id, tag_name, COUNT(*) as cnt
-> FROM operation_custom_tag_entity_new
-> GROUP BY qipu_id, tag_name
-> HAVING cnt > 1;
+---------+----------+-----+
| qipu_id | tag_name | cnt |
+---------+----------+-----+
| 0 | | 2 |
+---------+----------+-----+
1 row in set (0.01 sec)
Mwkk
(Ti D Ber A Cla Yr Lb)
13
这个结果集有3W多条-,- 我估计得找开发一点点清理了
Kongdom
(Kongdom)
15
这个结果是怎么样的?没理解为什么is null和= ''都查不出来
Kongdom
(Kongdom)
18
哦,这意思是这个字段不为空也不为null,只是因为截断转换成0了。
WalterWj
(王军 - PingCAP)
19
哦 不是 我是说贴主重复的不是 null 也不是空
我这里是 demo 。我写了重复数据罢了
1 个赞