数据从access迁移到mysql的一些问题
我第一次做迁移,所以使用的方法可能很笨。我是从access把数据导出成txt,然后把txt中的数据粘到一个SQL文件里,导入mysql中,新建成一个临时的表,然后在mysql中进行处理,最后把数据插入到程序使用的正式表中。现在遇到了几个问题:
问题一:
临时表olddocument中有一个字段receiver存储的内容形式是这样的:
|42lhf|lg|tyz|syz|sez|ssz|slz|sjz|sssz|ltez|ng|lbqjys|czqjys|lnqjys|yfqjys|ljxjys|lcxjys|lzxjys|raxjys|rxxjys|sjxjys|ljzx|ljsyzx|ljxsj|lczx|lcsygz|ragz|raez|rszj|rsez|lzzx|lzez|sjzx|sjmg|
就是由用户表user中的用户名组成的字符串,两个用户名间用" | "间隔。
现在我转到正式表document中,并且不再使用用户名了u_name,而是使用用户ID: u_id ,而且使用" , " 间隔,形式如:
1,2,3,7,6,12,13,14,22,38,27,28,29,30,43,44
用户ID:( u_id )与用户名: u_name 都是存在于用户表 user 中,请问这样的情况如转换呢?
问题二:
原库中olddocument表中的时间字段 pub_time 是 “日期/时间” 格式 ,形如:2010-9-9 17:28:22
现在的库document表中使用了时间戳,存储的是int类型,形如:1284024502
我已经查到日期转时间戳可以用如下方法:Select UNIX_TIMESTAMP('2010-9-9 17:28:22')
但是还是不会写SQL语句,现请大家帮忙,谢谢。
涉及到的表结构:
user表:
`u_id` int(11) NOT NULL auto_increment COMMENT '用户ID',
`is_mask` tinyint(1) NOT NULL COMMENT '是否被屏蔽',
`s_num` int(11) NOT NULL COMMENT '顺序号',
`u_name` varchar(20) collate utf8_bin NOT NULL COMMENT '用户登录名',
`cn_name` varchar(40) collate utf8_bin NOT NULL COMMENT '用户中文名',
`u_password` varchar(32) collate utf8_bin NOT NULL COMMENT '用户密码',
`group` int(3) NOT NULL COMMENT '群组',
`u_rights` int(2) NOT NULL COMMENT '用户权限',
`u_remark` varchar(200) collate utf8_bin NOT NULL COMMENT '备注',
`u_logintime` int(10) NOT NULL COMMENT '最后登录时间',
PRIMARY KEY (`u_id`)
document表
`d_id` int(11) NOT NULL auto_increment,
`title` varchar(100) collate utf8_bin NOT NULL COMMENT '公文标题',
`color` varchar(6) collate utf8_bin NOT NULL COMMENT '标题颜色',
`is_top` tinyint(1) NOT NULL COMMENT '置顶',
`doc_snum` varchar(50) collate utf8_bin NOT NULL COMMENT '发文字号',
`pub_time` varchar(32) collate utf8_bin NOT NULL COMMENT '发文时间',
`department` varchar(50) collate utf8_bin NOT NULL COMMENT '发文单位',
`receiver` text collate utf8_bin NOT NULL COMMENT '接收单位',
`content` text collate utf8_bin NOT NULL COMMENT '公文内容',
`doc_type` varchar(30) collate utf8_bin NOT NULL COMMENT '公文类型',
`is_feedback` varchar(50) collate utf8_bin NOT NULL COMMENT '反馈信息',
PRIMARY KEY (`d_id`)