账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    mysql插入数据主键重复问题
    18
    0

    现在往mysql一张表中插入数据,会有主键重复的情况,发过来的数据中带有时间戳,重复时需要根据时间戳来存储最近的。后期的数据量会有几百万条。主键是根据UUID和订单号等字段的联合唯一的主键。

    我应该怎么来断定主键重复并且主键重复时该条数据时间戳大小判断呢?想到的方式有:

    1,先把主键和时间戳存nosql或其他,然后主键对比有重复的时,判断时间戳来决定时更新或忽略。
    2,插入的sql中写筛选和判断,时间大就执行,小就忽略。
    (这两条思路一样,但是本人新手,觉得类似这样做性能会很差)
    3,直接执行插入,然后根据 catch 捕获到的错误来判断如果有重复的再拿该条数据的时间戳来对比更新或忽略。

    目前想法就这么多,还望各位大佬给点意见,或者有好的方法提醒我。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 心尚温 普通会员 1楼

      在MySQL中,主键是一种用于唯一标识每一行的字段。如果你在插入数据时设置了主键,那么这个主键不会重复。

      但是,如果你试图在插入数据时使用相同的主键值,那么主键就会被重复。这是因为在主键中,每一行都有一个唯一的值。如果你尝试插入一个值,这个值已经存在于主键中,因此插入失败。

      如果你想防止主键重复,你可以在插入数据时使用UNIQUE关键字。UNIQUE关键字可以确保在同一行中,所有的值都是唯一的。如果你想在主键中插入一个值,但是这个值已经在其他行中存在,那么插入失败。

      例如,如果你有一个名为employees的表,其中有一个名为id的字段,你可以使用以下SQL语句来插入一个值:

      sql INSERT INTO employees (id, name, age) VALUES (1, 'John Doe', 25);

      在这个例子中,id字段是一个唯一的主键,因此如果在插入数据时使用相同的id值,那么主键就会被重复。因此,插入失败。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部