首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在DataBases之间移动两个ID相同的表

问在DataBases之间移动两个ID相同的表
EN

Stack Overflow用户
提问于 2015-10-13 14:02:49
回答 1查看 49关注 0票数 0

我有两个数据库,具有相同的结构,但数据不同。还有..。在这两个数据库中,所有数据都在“Tiles”和“TilesData”列中具有自动识别in,这些in是相关的键。我必须将行从一个移动到另一个,但是id有例外。

我的问题描述清楚了吗?

​

我尝试过这样做(但我有点担心这个解决方案的可靠性,会有几百万行):

代码语言:javascript
复制
INSERT INTO DataBase_2.Tiles (X,Y,Zoom,Type,CacheTime)
    SELECT X, Y, Zoom, Type, CacheTime FROM DataBase_1.Tiles;
INSERT INTO DataBase_2.TilesData(Tile)
    SELECT Tile FROM DataBase_1.TilesData;

你能帮我还是给我一些提示?仅仅是SQL就足够了吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-13 16:33:43

当自动递增列声明为整数主键(没有AUTOINCREMENT)时,新ID将在表中的最大值之后获得下一个值。

检查两个表是否具有相同的最大ID值:

代码语言:javascript
复制
SELECT MAX(id) FROM DataBase_2.Tiles;
SELECT MAX(id) FROM DataBase_2.TilesData;

如果它们相等,则相应的行确实会获得相同的新ID。但是,您应该使用ORDER来确保以相同的顺序读取/插入行:

代码语言:javascript
复制
INSERT INTO DataBase_2.Tiles    (...)
    SELECT ...  FROM DataBase_1.Tiles     ORDER BY id;
INSERT INTO DataBase_2.TilesData(Tile)
    SELECT Tile FROM DataBase_1.TilesData ORDER BY id;

如果id列是用AUTOINCREMENT声明的,那么您必须检查(如果需要,调整) 序列表中的下一个ID值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33104776

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档