在sqlite3中组合两个表

在sqlite3中组合两个表,第1张

概述我在两个独立的sqlite3数据库中有两个表.数据类型相同,但模式略有不同.我希望它们是单个数据库中的单个表,具有与表2相同的模式 表格1 CREATE TABLE temp_entries ( id INTEGER PRIMARY KEY, sensor NUMERIC, temp NUMERIC, date NUMERIC); 表2 CREATE TABL 我在两个独立的sqlite3数据库中有两个表.数据类型相同,但模式略有不同.我希望它们是单个数据库中的单个表,具有与表2相同的模式

表格1

CREATE table temp_entrIEs (    ID INTEGER PRIMARY KEY,sensor NUMERIC,temp NUMERIC,date NUMERIC);

表2

CREATE table "restInterface_temp_entry" (    "ID" integer NOT NulL PRIMARY KEY,"dateTime" integer NOT NulL,"sensor" integer NOT NulL,"temp" integer NOT NulL);

ID在两个表之间不是唯一的.我想创建另一个具有与表2相同的模式的表.我希望表1中的条目的ID从0开始,然后表2中的条目从表1的最后一个条目开始.

理想情况下,我只想将表1中的条目添加到表2并“重新索引”主键,使其与“dateTime”的升序相同.

更新:我现在有两个表使用相同的模式,我通过创建一个与表2相同的模式的新表到保存表1的数据库中做到这一点.我将数据复制到新表中,例如:

INSERT INTO restInterface_temp_entry(ID,dateTime,sensor,temp)   ...> select ID,date,temp FROM temp_entrIEs;

背景

我曾经将一堆temp_entrIEs记录到csv文件中.我想将数据放入一种更易于使用的格式并选择sqlite3.我编写了一个程序,将所有条目都删除并将它们放入表1中.我不确定当时我在做什么,并使用表2来表示所有新条目.现在我想将它们全部组合起来,希望按升序保持ID和日期.

解决方法 弄清楚了.

>打开当前数据库.
>附加到原始数据库

ATTACH '/orig/db/location' as orig

>将记录从当前数据库移动到旧数据库,省略PK

insert into orig.restInterface_temp_entry(dateTime,temp)...> select dateTime,temp from main.restInterface_temp_entry;

>清除当前数据库表

delete from main.restInterface_temp_entry where ID > 0

>将原始数据库表中的所有更新记录复制回当前.

insert into main.restInterface_temp_entry(ID,temp)...> select ID,temp...> from orig.restInterface_temp_entry;
总结

以上是内存溢出为你收集整理的在sqlite3中组合两个表全部内容,希望文章能够帮你解决在sqlite3中组合两个表所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1158388.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-01
下一篇 2022-06-01

发表评论

登录后才能评论

评论列表(0条)

保存