免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2252 | 回复: 5
打印 上一主题 下一主题

数据导入问题 求教 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-12 11:17 |只看该作者 |倒序浏览
a.txt
  1. zp      fa       tiem        wd ct
  2. 12223 101 1214755200 7 13
  3. 12223 101 1214755200 11 3
  4. 12223 101 1214755200 13 1
  5. 12223 101 1214755200 17 1
  6. 12223 101 1214755200 24 1
  7. 12223 101 1214755200 10 3
  8. 12223 101 1214755200 18 2
  9. 12223 101 1214755200 25 1
  10. 12223 101 1214755200 8 2
  11. 12223 101 1214755200 14 2
  12. 12223 101 1214755200 30 1
  13. 12223 101 1214755200 9 3
  14. 12223 101 1214755200 12 3
  15. 12223 101 1214755200 15 1
  16. 12223 101 1214755200 32 1
  17. 12223 101 1214755200 19 1
  18. 12223 101 1214755200 39 1
  19. 12223 101 1214755200 20 1
  20. 12223 101 1214755200 46 1
  21. 12223 101 1214755200 48 1
  22. 12223 101 1214755200 55 1
  23. 12223 101 1214755200 23 1
  24. 12223 101 1214755200 16 1
  25. 12223 101 1214755200 21 1
复制代码

我想把上面a.txt这个格式的文件导入下面这个表里.

CREATE TABLE `dd` (
  `id` int(10) unsigned NOT NULL auto_increment,
  `zp` bigint(10) unsigned NOT NULL,
  `fa` int(10) unsigned NOT NULL,
  `time` int(10) unsigned NOT NULL,
  `wd` varchar( 2048 ) NOT NULL,
  `ct` int(10) unsigned NOT NULL,
  PRIMARY KEY  (`id`),
  KEY `mainkey` (`et`,`zp`,`fa`)
)


id号根据 dd 这个表的实际情况自动递增生成..

如果有重复的,就删除掉.主键是这五个字段
  `zp` bigint(10) unsigned NOT NULL,
  `fa` int(10) unsigned NOT NULL,
  `time` int(10) unsigned NOT NULL,
  `wd` varchar(2048 ) NOT NULL,
  `ct` int(10) unsigned NOT NULL,




这个用mysql 的load能实现吗?
是不是得另外写程序,用程序控制 进行插入?

论坛徽章:
0
2 [报告]
发表于 2008-12-12 11:44 |只看该作者
这样是不是也能行??
load data local infile 'a.txt' into table `dd`
FIELDS TERMINATED BY ' ' LINES TERMINATED BY '\n'
(@a,@b,@c,@d,@e)
set zp = @a,
    fa = @b,
    time = @c,
    wd = @d,
    ct = @e;

在这里 id 怎么弄呢??

论坛徽章:
0
3 [报告]
发表于 2008-12-12 12:54 |只看该作者
尽量把字段见用“括起来。然后用LOAD DATA.

论坛徽章:
0
4 [报告]
发表于 2008-12-12 14:10 |只看该作者
在这里 id 怎么弄呢??


id 不用管,把其他字段按顺序写完整;
id 自动生成;

论坛徽章:
0
5 [报告]
发表于 2008-12-12 16:08 |只看该作者
如果有下面的五个字段组合起来是重复的,就删除掉.
  `zp` bigint(10) unsigned NOT NULL,
  `fa` int(10) unsigned NOT NULL,
  `time` int(10) unsigned NOT NULL,
  `wd` varchar(2048 ) NOT NULL,
  `ct` int(10) unsigned NOT NULL,

这一步怎么弄呢

论坛徽章:
0
6 [报告]
发表于 2008-12-12 17:53 |只看该作者
这一步怎么弄呢?

要么用 awk 把txt里面重复的干掉;
要么导入db后用sql语句干掉;

看数据量,
我个人觉得还是sql语句实现简单。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP