zoukankan      html  css  js  c++  java
  • Duplicate entry * for key *

    一、问题

    插入数据时报错

    Duplicate entry * for key *
    

    二、分析

    建表语句

    CREATE TABLE `t_product_result_config` (
      `id` varchar(32) NOT NULL,
      `type` tinyint(4) NOT NULL COMMENT '条件类型 0:优秀,1:一般',
      `product_condition` json DEFAULT NULL COMMENT '条件对象JSON',
      `create_user_id` varchar(32) NOT NULL COMMENT '条件所属用户id',
      `create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
      `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
      `gender` tinyint(4) NOT NULL COMMENT '性别类型 0:男,1:女,2:中性',
      PRIMARY KEY (`id`),
      UNIQUE KEY `uk_id` (`id`),
      UNIQUE KEY `uk_type_create_user_id` (`type`,`create_user_id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='测品结果条件表';
    

    插入的SQL

    问题定位

    UNIQUE KEY uk_type_create_user_id (type,create_user_id)

    相同的create_user_id和type下,由于UNIQUE KEY限制,只能存在一条数据;而产品需求是能建不同性别的数据,所以需要新增一个关联字段

    三、解决方案

    ALTER TABLE t_product_result_config DROP INDEX `uk_type_create_user_id`;
    ALTER TABLE t_product_result_config ADD UNIQUE KEY `uk_type_create_user_id`(`type`,`gender`,`create_user_id`);
    
  • 相关阅读:
    学习进度笔记4
    学习进度笔记3
    学习进度笔记2
    学习进度笔记1
    《梦断代码》提及文献
    《梦断代码》阅读笔记6
    《梦断代码》阅读笔记5
    需求征集系统开发进度5
    《梦断代码》阅读笔记4
    spark filter
  • 原文地址:https://www.cnblogs.com/diffx/p/10728929.html
Copyright © 2011-2022 走看看