数据导入有关问题
数据导入问题
1.表A
ID(主键) 姓名 手机号
1 张三
2 李四
3 王五
4 张三
表B
姓名 手机号
张三 138
李四 139
王五 137
赵六 133
用表B的手机号更新表A的手机号,或插入数据,表A中的姓名可能重复,如何做?
需要的结果如下:
ID(主键) 姓名 手机号
1 张三 138
2 李四 139
3 王五 137
4 张三 138
5 赵六 133
2.我其实要做的是数据导入,从Excel导入access数据库,表B是Excel导入生成的临时表,然后更新主表A,用Delphi实现.
有没有更好的办法导入数据?
从 "其他数据库开发 Access 区 " 得到的答案:
update a inner join b on a.姓名=b.姓名 set a.手机号=b.手机号;
INSERT INTO a(姓名,手机号) SELECT b.姓名 , b.手机号 FROM b WHERE 姓名 not in (SELECT 姓名 FROM a);
但主键ID(非自增字段)不充许为空,如何解决?
------解决方案--------------------
把字段改你自增列,倒入数据完成之后再改回去!
------解决方案--------------------
你的id号必须按顺序排列吗?
如果可以的话,你的id号就做成一个流水号,用代码控制自动添加。
而且你的这两张表有点问题
只用id号你无法将重名问题解决,在更新的时候会出现导入错误的
1.表A
ID(主键) 姓名 手机号
1 张三
2 李四
3 王五
4 张三
表B
姓名 手机号
张三 138
李四 139
王五 137
赵六 133
用表B的手机号更新表A的手机号,或插入数据,表A中的姓名可能重复,如何做?
需要的结果如下:
ID(主键) 姓名 手机号
1 张三 138
2 李四 139
3 王五 137
4 张三 138
5 赵六 133
2.我其实要做的是数据导入,从Excel导入access数据库,表B是Excel导入生成的临时表,然后更新主表A,用Delphi实现.
有没有更好的办法导入数据?
从 "其他数据库开发 Access 区 " 得到的答案:
update a inner join b on a.姓名=b.姓名 set a.手机号=b.手机号;
INSERT INTO a(姓名,手机号) SELECT b.姓名 , b.手机号 FROM b WHERE 姓名 not in (SELECT 姓名 FROM a);
但主键ID(非自增字段)不充许为空,如何解决?
------解决方案--------------------
把字段改你自增列,倒入数据完成之后再改回去!
------解决方案--------------------
你的id号必须按顺序排列吗?
如果可以的话,你的id号就做成一个流水号,用代码控制自动添加。
而且你的这两张表有点问题
只用id号你无法将重名问题解决,在更新的时候会出现导入错误的