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

Dan*_*nov 0 python sqlite

我从python 2.7.2使用SQLite版本3.3.6.

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

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;
Run Code Online (Sandbox Code Playgroud)

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

小智 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;
Run Code Online (Sandbox Code Playgroud)

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

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