各位不知道大家有没有遇到这样怪问题:备份数据库一个数据表存放了商品销售的记录,按日期排列。原来是保存到08年1月18日的数据,现在要更新到1月31日的。我首先将08年1月的数据删除掉,delete08年1月现有的数据。然后从生产库里导出整个1月的数据。采用了SELECT INTO的备份方法。我将数据导入到数据库没有错误,而且可以在数据库里查到所有的记录,但是我用应用查询却只能查询出截至08年1月18日的数据,19到31日的数据确是空的。
因为我用同样的方法备份了销售费用等记录,都是没有问题的,唯独这个商品销售表却出现了这个奇怪的现象。
我最后把该表删除,用MYSQLDUMP方法备份了08年1月的数据重新建了这个表都只能查询出08年1月18日前的数据,19日的数据还是空的,我在数据库里明明可以查询出这些记录但是应用始终查询不出来。我换了另外的应用服务器,也是查询不出来,这些应用直接查生成服务器都是正常,只是改个数据库名查询这个备份数据库,却始终只能查询出最初的到08年1月18日的数据,我想不出来原因,和应用应该没有关系。不知道哪位朋友能想到原因,谢谢。

解决方案 »

  1.   

    贴出你的表结构与SQL 语句。
      

  2.   

    导出数据用:
    Select * from RetailVoucher where voucherTime < '2008-02-01 00:00:00' into outfile 'RetailVoucher0801.txt';导入数据用:load data infile '/var/lib/mysql/netbar/RetailVoucher0801.txt'  into table RetailVoucher ;数据库里都有这些数据的我只有重新建立一个新的数据库,导一次备份就是正常的。用原来那个始终出不来,想不明白。感觉和应用程序没有关系,毕竟用同一个程序来访问的,唯一不同的就是数据库。
    建表脚本:CREATE TABLE `RetailVoucher` (
      `voucherNo` varchar(12) NOT NULL default '',
      `oldVoucherNo` varchar(12) default NULL,
      `netBarId` smallint(5) unsigned default NULL,
      `storeId` smallint(5) unsigned NOT NULL default '0',
      `refNo` int(11) default NULL,
      `serialNo` int(11) default NULL,
      `payType` smallint(5) unsigned default NULL,
      `retailType` smallint(5) unsigned default NULL,
      `memberId` int(11) default NULL,
      `week` int(11) default NULL,
      `classId` int(11) default NULL,
      `userId` varchar(30) NOT NULL default '',
      `voucherTime` datetime default NULL,
      `description` varchar(200) default NULL,
      `cashRegisterID` int(11) default NULL,
      `point` int(11) default NULL,
      `accountYear` varchar(4) NOT NULL default '',
      `accountMonth` char(2) NOT NULL default '',
      `status` int(11) default NULL,
      `balanceDate` date default NULL,
      `voucherStatus` smallint(6) default NULL,
      PRIMARY KEY  (`voucherNo`),
      KEY `RetailVoucherOldVoucher` (`oldVoucherNo`),
      KEY `vouchertime_netbarid` (`voucherTime`,`netBarId`),
      KEY `accountYearMonth` (`accountYear`,`accountMonth`,`netBarId`),
      KEY `voucher_memberid` (`memberId`)
    ) TYPE=InnoDB;