UPDATE district
SET DISTRICT_NO='' //DISTRICT_NO为主键 却能成功更新
WHERE DISTRICT_NO`='s'
我用的是MYSQL

解决方案 »

  1.   

    SHOW CREATE TABLE tbl_name
    贴结果
      

  2.   

    CREATE TABLE `district` (
      `DISTRICT_NO` varchar(6) NOT NULL,
      `PROVINCE` varchar(10) DEFAULT NULL,
      `BRANCH_STORE_AREA` varchar(10) DEFAULT NULL,
      `DISTRICT_NAME` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
      `DISTRICT_REMARK` varchar(100) DEFAULT NULL,
      `DELETE_FLAG` enum('NORMAL','DELETE') NOT NULL DEFAULT 'NORMAL',
      `RECORDER` varchar(15) NOT NULL,
      `RECORD_TIME` datetime NOT NULL,
      PRIMARY KEY (`DISTRICT_NO`) USING BTREE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;-- ----------------------------
    -- Records of district
    -- ----------------------------
    INSERT INTO `district` VALUES ('', '甘肃', 'sss', '江北区', '哈哈', 'DELETE', 'lij', '2009-11-04 14:38:14');
      

  3.   

    你只定义了DISTRICT_NO不为null,''不等于null的。
      

  4.   

    空字符串<>NULL,再增加一个就会出问题
    INSERT INTO `district` VALUES ('', '甘肃', 'sss', '江北区', '哈哈', 'DELETE', 'lij', '2009-11-04 14:38:14');
      

  5.   

    SET DISTRICT_NO='''' 是字符串,一个内容为空的字符串。而 NULL 是什么都没有。并不一样。
      

  6.   

    SET DISTRICT_NO='' 是字符串,且不能再添 因为为提示主键重复  这个只能在你的程序控制中解决!