mysql_唯一索引數據重復問題總結


CREATE TABLE `tt_transfer_assemble_diffuse_plan_info` (
  `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `yard_code` varchar(11) NOT NULL DEFAULT '' COMMENT '中轉場代碼',
  `situation` varchar(11) NOT NULL DEFAULT '' COMMENT '集散情況',
  `assemble_plan` varchar(20) DEFAULT NULL COMMENT '集貨班次',
  `diffuse_plan` varchar(20) DEFAULT NULL COMMENT '散貨班次',
  `start_time` varchar(11) NOT NULL DEFAULT '' COMMENT '開始時間',
  `end_time` varchar(11) NOT NULL DEFAULT '' COMMENT '結束時間',
  `diffuse_pick_partition` varchar(600) DEFAULT '' COMMENT '散貨分揀片區',
  `operator` varchar(32) NOT NULL DEFAULT '' COMMENT '操作人',
  `create_by` varchar(10) DEFAULT NULL COMMENT '創建者',
  `update_by` varchar(10) DEFAULT NULL COMMENT '更新者',
  `delete_flg` tinyint(1) DEFAULT NULL COMMENT '是否刪除{0:否,1:是}',
  `version` bigint(20) DEFAULT NULL COMMENT '版本號',
  `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '創建時間',
  `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時間',
  PRIMARY KEY (`id`),
  UNIQUE KEY `idx_unique` (`yard_code`,`situation`,`assemble_plan`,`diffuse_plan`) USING BTREE COMMENT '聯合唯一索引',
  KEY `idx_create_time` (`create_time`) USING BTREE COMMENT '創建時間索引',
  KEY `idx_update_time` (`update_time`) USING BTREE COMMENT '更新時間索引'
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COMMENT='集散班次信息表';

唯一索引為聯合唯一索引,如果這四個字段中有null 的話,是可以重復的,因為唯一索引允許null重復

比如對於這張表可以插入多條

537W J NULL NULL
537W J NULL NULL

537W J JIANG NULL
537W J JIANG NULL


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM