Sqlite3:从python附加数据库查询期间删除了错误的表

时间:2012-07-24 12:36:37

标签: python sqlite

我使用python 2.7.2中的SQLite版本3.3.6。

在python脚本中使用executescript()执行此查询时:

attach database 'Capacity.db' as WeekAgo;
drop table if exists maximums;
create table maximums (Element TEXT UNIQUE, Score NUMBER , Report TEXT);
insert into maximums (Element, Score, Report) select * from WeekAgo.maximums;

我总是最终删除附加数据库中的WeekAgo.maximums表,并且脚本崩溃,不再存在WeekAgo.maximums。我究竟做错了什么?没有DROP IF EXISTS,一切正常。

1 个答案:

答案 0 :(得分:5)

使用main关键字:

attach database 'Capacity.db' as WeekAgo;
drop table if exists main.maximums;
create table main.maximums (Element TEXT UNIQUE, Score NUMBER , Report TEXT);
insert into main.maximums (Element, Score, Report) select * from WeekAgo.maximums;

请参阅https://www.sqlite.org/lang_attach.html

  

如果不同数据库中的两个或多个表具有相同的名称且未在表引用上使用database-name前缀,则所选表是数据库中最近最少附加的表。