- 主题:mysql如何支持同一主键记录下的两次写入操作
既然id会在不同消息里存在重复,为啥要把id设计成主键
【 在 DragonDon 的大作中提到: 】
: 目标功能是根据request消息中信息更新数据库。
: 设计方案是把消息中携带的id作为表的主键,消息中其他信息insert到表的相应字段;
: 目前的场景存在2条消息携带同一id,但携带不同的信息,如何把两条带有相同id的消息中的各自信息insert到表中的同一条记录中的相应字段。
: ...................
--
FROM 125.119.239.*
你前面做的事情是想把id相同的两条数据都insert到数据库里,
并没有涉及到两条数据的业务字段拼接。
那么,如果可以insert,你打算按什么规则拼接?这才是你应该
重点考虑的问题。
因为,“可以insert”是一个很简单的问题,大不了用自增值做
主键,session id只是个业务字段,那就可以重复了。
你在首帖里关注的重复主键无法插入这事,根本只是个次要细节。
【 在 DragonDon 的大作中提到: 】
: 这个id是一个session id,我想记录每个session的状态位信息。
: 但服务器端存在对同一个session发出两条消息,并且提供的是不同状态位信息,我想拼接出一个session的所有状态位信息。
: 有什么好的方案么?
: ...................
--
FROM 125.119.239.*
那你前面说的“拼接”,表达很有误导性啊。
实际要的是以新代旧,就简单多了,纯粹是SQL常见的upsert/merge语法而已。
【 在 DragonDon 的大作中提到: 】
: 我发现这个问题的问法应该是’mysql中如果不存在则insert,存在则update‘
: 按照这个问法,找到解决方案了
: 谢谢了哈
: ...................
--
FROM 125.119.239.*