我在两个单独的sqlite3数据库中有两个表。数据类型相同,但架构略有不同。我希望它们成为具有相同架构的单个数据库中的单个表Table 2
Table 2
CREATE TABLE temp_entries ( id INTEGER PRIMARY KEY, sensor NUMERIC, temp NUMERIC, date NUMERIC);
CREATE TABLE "restInterface_temp_entry" ( "id" integer NOT NULL PRIMARY KEY, "dateTime" integer NOT NULL, "sensor" integer NOT NULL, "temp" integer NOT NULL );
id在两个表之间不是唯一的。我想使用与相同的架构创建另一个表Table 2。我希望id表1中的条目从0开始,然后从的条目从table 2在的最后一个条目之后开始table 1。
id
table 2
table 1
理想情况下,我想刚刚从添加条目Table 1,以Table 2和“重新索引”的主键,以便它是在同一个升序说:“日期时间”是。
Table 1
更新 :现在我两个表都使用相同的架构,我通过创建一个具有与拥有Table 2的数据库相同的架构的新表来做到这一点Table 1。然后,我将数据复制到新表中,如下所示:
INSERT INTO restInterface_temp_entry(id,dateTime,sensor,temp) ...> select id,date,sensor,temp FROM temp_entries;
我曾经将一堆录制temp_entries到一个csv文件中。我想将数据放入一种更易于使用的格式,并选择了sqlite3。我编写了一个程序,将所有条目拉出并放入Table 1。我不确定当时我在做什么,并用于Table 2所有新条目。现在,我想将它们全部结合起来,希望将ID和日期按升序排列。
temp_entries
弄清楚了。
打开当前数据库。
附加到原始数据库
ATTACH '/orig/db/location' as orig
将记录从当前数据库移动到旧数据库,而忽略PK
insert into orig.restInterface_temp_entry(dateTime,sensor,temp)
…> select dateTime,sensor,temp from main.restInterface_temp_entry;
清除当前数据库表
delete from main.restInterface_temp_entry where id > 0
将所有更新的记录从原始数据库表复制回当前目录。
insert into main.restInterface_temp_entry(id,dateTime,sensor,temp)
…> select id,dateTime,sensor,temp …> from orig.restInterface_temp_entry;