0

Python 2.7.2 の SQLite バージョン 3.3.6 を使用しています。

executescript()from 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;

アタッチされたデータベースの WeekAgo.maximums テーブルが削除され、スクリプトがクラッシュして、WeekAgo.maximums が存在しなくなります。私は何を間違っていますか?がなければDROP IF EXISTS、すべて正常に動作します。

4

1 に答える 1

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を参照してください

異なるデータベース内の 2 つ以上のテーブルが同じ名前で、データベース名のプレフィックスがテーブル参照で使用されていない場合、選択されたテーブルは、データベース内で最も最近にアタッチされたテーブルです。

于 2012-07-24T12:40:37.070 に答える