CREATE TABLE IF NOT EXISTS `t_enum` (
`F_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',
`F_type` varchar(32) NOT NULL COMMENT '类型',
`F_kid` varchar(64) NOT NULL COMMENT '数字键',
`F_kstr` varchar(64) NOT NULL COMMENT '字母键',
`F_value` varchar(128) NOT NULL COMMENT '值',
`F_comment` varchar(128) NOT NULL COMMENT '备注',
`F_enable` tinyint(4) NOT NULL DEFAULT '0' COMMENT '0:正常 -1:删除',
`F_op_user` varchar(128) NOT NULL COMMENT '备注',
`F_create_time` datetime NOT NULL COMMENT '创建时间',
`F_modify_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
PRIMARY KEY (`F_id`),
UNIQUE KEY `uk_type_kid` (`F_type`,`F_kid`),
UNIQUE KEY `uk_type_str` (`F_type`,`F_kstr`),
KEY `idx_kid` (`F_kid`),
KEY `idx_str` (`F_kstr`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='枚举常量表' AUTO_INCREMENT=13 ;
会话1
set autocommit=0
INSERT INTO `bfb_db_kuajing`.`t_enum` (`F_id`, `F_type`, `F_kid`, `F_kstr`, `F_value`, `F_comment`, `F_enable`, `F_op_user`, `F_create_time`, `F_modify_time`) VALUES (NULL, '7', '7', '', '', '', '0', '', '', CURRENT_TIMESTAMP);
insert 一个语句 //当前会话木有commit或者rollback之前 其他会话是可以插入的,若当前会话回滚了,后续插入语句不会使用当前已经废弃的自增ID)
会话2
set autocommit=0
INSERT INTO `bfb_db_kuajing`.`t_enum` (`F_id`, `F_type`, `F_kid`, `F_kstr`, `F_value`, `F_comment`, `F_enable`, `F_op_user`, `F_create_time`, `F_modify_time`) VALUES (NULL, '7', '7', '', '', '', '0', '', '', CURRENT_TIMESTAMP); (由于和会话1 的唯一索引 冲突 当前会一直阻塞直到会话1 结束
INSERT INTO `bfb_db_kuajing`.`t_enum` (`F_id`, `F_type`, `F_kid`, `F_kstr`, `F_value`, `F_comment`, `F_enable`, `F_op_user`, `F_create_time`, `F_modify_time`) VALUES (NULL, '8', '8, '', '', '', '0', '', '', CURRENT_TIMESTAMP); 如果是这这个插入语句 则会消耗新的自增ID F_ID