Mysql Incrementing字段,包含PK和日期戳

时间:2016-12-10 05:06:19

标签: mysql key

我有一个服务器端应用程序,我需要将新的和更新的项目同步到移动设备。要求是存储一个"密钥"可以在服务器和设备之间传递,以标记我们在同步过程中的位置。我们有一个毫秒时间戳字段可用于此,除了当我们允许客户上传csv文件时,插入进程将所有这些插入与相同的时间戳组合在一起,因为now()在开头设置了一个变量。交易并在整个交易过程中使用它。

我能想出的唯一可能性是做某种数字散列或CRC,其中我将时间戳和pk(在这种情况下为1045)加在一起,如CRC32(now()+ 1045),但这不会产生顺序随着时间的推移......

我正在考虑的另一个选项是修改批量上传过程,以便在构建插入时为每个项目添加递增的毫秒值:

  insert into items (description,datemodified) VALUES 
('toaster',(now(3)+.001)),
('blender', (now(3)+.002),
('coffee maker', (now(3)+.003));

然后我会有一个足够独特且连续的ID,我可以来回传递以跟踪同步状态。

运行MySQL 5.7.11,所有表都是InnoDB。

有人解决了这个更好的方法吗?

1 个答案:

答案 0 :(得分:1)

我认为[{"year":2015,"month":4,"day":1,"num":0,"time":"2015-04-01","hour":0,"zone":3,"state1":2137,"state2":249,"state3":1810,"state4":30,"state5":0},....] 的整数列可能适合您的用例。

AUTO_INCREMENT