进行数据转换的时候由于疏忽一个日期字段没有导入,现在在新表中新建了一个字段,并且要把旧表的数据对应更新,旧表的数据已经导出成文本文件,类似:2003-11-22 23:42:00 
2003-11-24 11:56:00 
2003-11-24 15:53:00
2003-11-26 15:51:00
2003-11-26 15:56:00
。。一共几千条记录,需要一条一条更新到新表的time字段,怎么更新呢?有没有根据根id逐条更新的语句?
需要按照顺序一行一行更新time列,而不是增加新的纪录。请大家指点一下,,多谢!

解决方案 »

  1.   


    1、truncate table 你的表名;
    2、load data infile '你的文本文件路径' into table 你的表名;
      

  2.   

    谢谢,可能我没说清楚,只是更新time这一个字段,而不是清空表,比如为user表,字段为id,username,time,由于疏忽time字段一开始没有同步导入,导致表中缺少一个字段,然后手工添加一个字段,这样这个字段的内容是空的或者默认值,比如:
    id   username  time
    1     阿呆       0000-00-00 00:00:00
    2     阿瓜      0000-00-00 00:00:00
    3     阿花       0000-00-00 00:00:00
    。。现在就是要用文本文件中的
    2003-11-22   23:42:00   
    2003-11-24   11:56:00   
    2003-11-24   15:53:00 
    2003-11-26   15:51:00 
    2003-11-26   15:56:00 替换usera表中的time字段的值,怎么操作呢?此外目前我的文本文件每一行的实际内容是类似下面这样的:
    Insert into `user` (time) Values ('2003-11-22   23:42:00')
    。。我想用批量替换的方法,把每行改成一个语句更新,不知是否能够实现?请指点,谢谢!
      

  3.   

    是否是这个语句呢?REPLACE INTO `user` (time) Values ( '2003-11-22 23:42:00 ');
    .
    .
    .
    ............................................................
      

  4.   

    又仔细看了一下
    1、truncate table 你的表名;
    2、load data infile '你的文本文件路径' into table 你的表名;中“表名”是否是笔误,意思是字段,是否是这样?truncate 'user' time
    load data infile 'd:/time.txt' into 'user' time对mysql的语法还不熟悉,请多指点,谢谢!
      

  5.   

    知道你是更新这个字段,如果你想快点的话
    导出原来的数据:然后在原来数据的后面想办法每行加上(用EDITPLUS等工具全局替换功能,一下子就搞定了)
    2003-11-22       23:42:00      
    2003-11-24       11:56:00      
    2003-11-24       15:53:00  
    2003-11-26       15:51:00  
    2003-11-26       15:56:00 

    之后用我给的语句就OK了。这样是最快的。
      

  6.   

    老库是mssql的,新库和老的结构和很多数据类型都不一样,某些字段,还要根据其他表的值一条一条执行sql人工替换,因此导出原有数据,工作量巨大,不到万不得已不准备这样,有没有办法直接把这个文本文件,或者修改这个文本文件的每条语句,然后执行呢?
    谢谢!