数据库建表脚本DROP TABLE IF EXISTS `s_big_dict`;
CREATE TABLE `s_big_dict` (
  `dict_code_` varchar(20) NOT NULL,
  `dict_name_` varchar(50) DEFAULT NULL,
  `data_value_` decimal(20,8) DEFAULT NULL,
  `param1_name_` varchar(50) DEFAULT NULL,
  `param1_value_` varchar(50) DEFAULT NULL,
  `param2_name_` varchar(50) DEFAULT NULL,
  `param2_value_` varchar(50) DEFAULT NULL,
  `param3_name_` varchar(50) DEFAULT NULL,
  `param3_value_` varchar(50) DEFAULT NULL,
  `param4_name_` varchar(50) DEFAULT NULL,
  `param4_value_` varchar(50) DEFAULT NULL,
  `param5_name_` varchar(50) DEFAULT NULL,
  `param5_value_` varchar(50) DEFAULT NULL,
  UNIQUE index `index1` (`dict_code_`,`param1_value_`,`param2_value_`,`param3_value_`,`param4_value_`,`param5_value_`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;数据脚本INSERT INTO `s_big_dict` VALUES ('001', '溶液浓度温度补正值', '-4.10000000', '温度', '36', '浓度', '0.05', '溶质', null, null, null, null, null);
INSERT INTO `s_big_dict` VALUES ('001', '溶液浓度温度补正值', '-4.30000000', '温度', '36', '浓度', '0.1', '溶质', null, null, null, null, null);
INSERT INTO `s_big_dict` VALUES ('001', '溶液浓度温度补正值', '-4.30000000', '温度', '36', '浓度', '0.2', '溶质', null, null, null, null, null);
INSERT INTO `s_big_dict` VALUES ('001', '溶液浓度温度补正值', '-4.30000000', '温度', '36', '浓度', '0.5', '溶质', 'HCl', null, null, null, null);
INSERT INTO `s_big_dict` VALUES ('001', '溶液浓度温度补正值', '-4.40000000', '温度', '36', '浓度', '1', '溶质', 'HCl', null, null, null, null);
INSERT INTO `s_big_dict` VALUES ('001', '溶液浓度温度补正值', '-4.70000000', '温度', '36', '浓度', '0.5', '溶质', 'H2SO4', null, null, null, null);
INSERT INTO `s_big_dict` VALUES ('001', '溶液浓度温度补正值', '-4.70000000', '温度', '36', '浓度', '0.5', '溶质', 'NaOH', null, null, null, null);
INSERT INTO `s_big_dict` VALUES ('001', '溶液浓度温度补正值', '-5.30000000', '温度', '36', '浓度', '1', '溶质', 'H2SO4', null, null, null, null);
INSERT INTO `s_big_dict` VALUES ('001', '溶液浓度温度补正值', '-5.30000000', '温度', '36', '浓度', '1', '溶质', 'NaOH', null, null, null, null);
INSERT INTO `s_big_dict` VALUES ('001', '溶液浓度温度补正值', '-5.30000000', '温度', '36', '浓度', '1', '溶质', 'NaOH', null, null, null, null);MySQL新人,按道理说,最后一条记录应该无法插入才对,但现在看,插入完全没有报错,怎么回事?

解决方案 »

  1.   


    也就是说有null值的就不行?
    之前一直在用SQL Server,这样可以控制住
      

  2.   


    也就是说有null值的就不行?
    之前一直在用SQL Server,这样可以控制住
    对的,unique索引是唯一索引,但实际上,里面的值可以有null,这个就是unique和primary key的不同,primary key是不能有null的。另外,需要说明的是在sql server中的unique也是可以有null的,因为null什么也不是,所以可以存在多个:1 null
    1 null
    2 xx
    2 null
    这些都可以插入到表里,不会报错。