PRIMARY KEY数据可以被重复插入,最后只有一条数据存在?
麻烦您把问题详细说明下,比如哪个版本,具体什么sql,多谢。 如果可以的话,举一个例子,primary key 怎么重复插入了
版本是4.0.2
CREATE TABLE account (
_id bigint(20) NOT NULL,
_region varchar(256) NOT NULL,
_ts bigint(20) NOT NULL DEFAULT 0,
_create_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
_update_time timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
id varchar(32) DEFAULT NULL,
sub_type smallint(6) NOT NULL,
account_type smallint(6) NOT NULL,
principle varchar(128) NOT NULL,
credential varchar(512) DEFAULT NULL,
hashed_credential varchar(512) DEFAULT NULL,
salt varchar(256) DEFAULT NULL,
encrypt_type smallint(6) DEFAULT NULL,
status smallint(6) DEFAULT NULL,
create_time bigint(20) NOT NULL,
modify_time bigint(20) NOT NULL,
creator_id varchar(32) DEFAULT NULL,
modifier_id varchar(32) DEFAULT NULL,
is_deleted tinyint(1) NOT NULL,
is_master tinyint(1) DEFAULT 0,
party_id varchar(32) DEFAULT NULL,
PRIMARY KEY (_id),
KEY _idx_region_auto (_region),
KEY _idx_ts_auto (_ts),
KEY _idx_update_time_auto (_update_time)
)
图中的两条插入都成功了,_id 均为42964237196198324,为主键
primary_key.txt (36.3 KB)
您好,请问你们这个 log 是怎么得来的?
我们自已打的,binlog同步落库打的
tidb 不允许 primary key 重复插入,麻烦你们确认一下同步库的 log 逻辑以及同步过来的数据目前是什么样子,我们也尝试根据你们的表结构复现一下。
insert_duplicate_success.txt (949 字节)
这么复现就可以了,单纯用Mysql客户端执行就可以出现
收到,这里尝试本地复现下,如果有最新消息会及时跟帖~
另外,这个是悲观锁还是乐观锁模型?
您好,我们已经修复这个问题 https://github.com/pingcap/tidb/pull/19019 。在下一个版本(4.0.5)就会得到修复了。
好的,谢谢
感谢反馈
,请关注下 TiDB 官网 v4.0.5 的发版情况哈~~
