开发者社区> 问答> 正文

避免重复输入mysql数据库的最佳方法

我有一个包含3列的表格-id(pk),pageId(fk),名称。我有一个PHP脚本,它将大约5000条记录转储到表中,其中大约一半是重复的,具有相同的pageId和名称。pageId和名称的组合应该是唯一的。当我遍历php中的脚本时,防止重复项被保存到表中的最佳方法是什么?

展开
收起
保持可爱mmm 2020-05-10 19:51:10 497 0
1 条回答
写回答
取消 提交回答
  • 第一步是在表上设置唯一键:

    ALTER TABLE thetable ADD UNIQUE INDEX(pageid, name); 然后,当有重复项时,您必须决定要做什么。你应该:

    忽略它?

    INSERT IGNORE INTO thetable (pageid, name) VALUES (1, "foo"), (1, "foo"); 覆盖先前输入的记录?

    INSERT INTO thetable (pageid, name, somefield) VALUES (1, "foo", "first") ON DUPLICATE KEY UPDATE (somefield = 'first')

    INSERT INTO thetable (pageid, name, somefield) VALUES (1, "foo", "second") ON DUPLICATE KEY UPDATE (somefield = 'second') 更新一些柜台?

    INSERT INTO thetable (pageid, name) VALUES (1, "foo"), (1, "foo") ON DUPLICATE KEY UPDATE (pagecount = pagecount + 1) 分享来源:stack overflow

    2020-05-10 19:51:24
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
搭建电商项目架构连接MySQL 立即下载
搭建4层电商项目架构,实战连接MySQL 立即下载
PolarDB MySQL引擎重磅功能及产品能力盛大发布 立即下载

相关镜像