4

Macでは、2つの列を持つtxtファイルがあります。1つはsqliteテーブルの自動インクリメントです。

, "mytext1"
, "mytext2"
, "mytext3"

このファイルをインポートしようとすると、データ型の不一致エラーが発生します。

.separator ","
.import mytextfile.txt mytable

自動インクリメントを使用するように、txtファイルをどのように構成する必要がありますか?

また、改行のあるテキストを入力するにはどうすればよいですか?例えば:

"this is a description of the code below.
The text might have some line breaks and indents.  Here's
the related code sample:

foreach (int i = 0; i < 5; i++){

  //do some stuff here

}

this is a little more follow up text."

上記を1行に挿入する必要があります。フォーマットに特別なことはありますか?

ある特定のテーブルについて、各行をファイルとしてインポートし、その方法でインポートします。複数のインポートを実行するある種のバッチファイルを作成することの問題だと思います。

編集

カンマを使用しているのでタブを除いて、これはまさに私が投稿した構文です。私の投稿に改行がないことは、それを明らかにしませんでした。とにかく、それは不一致エラーを与えます。

4

3 に答える 3

9

私は同じ問題を見ていました。ID フィールドを使用してテーブルにファイルをインポートすることについて、質問の最初の部分で答えを見つけたようです。

そうです、ID なしで一時テーブルを作成し、ファイルをそこにインポートしてから、insert..select を実行して、そのデータをターゲット テーブルにコピーします。(mytextfile.txt から先頭のコンマを削除します)。

-- assuming your table is called Strings and
-- was created like this:
-- create table Strings( ID integer primary key, Code text )

create table StringsImport( Code text );
.import mytextfile.txt StringsImport
insert into Strings ( Code ) select * from StringsImport;
drop table StringsImport;

改行をどうするかわかりません。CSV モード (.mode csv) でインポートするとうまくいくという記述を読んだことがありますが、試してみるとうまくいきませんでした。

于 2009-01-24T22:11:55.433 に答える
0

それでも問題が解決しない場合は、SQLLiteマネージャーをダウンロードできます。

CSVファイルからのインポートを可能にするものがいくつかあります。

これが1つですが、グーグル検索でいくつかが明らかになるはずです:http ://sqlitemanager.en.softonic.com/

于 2012-09-04T10:31:57.013 に答える
0

さまざまな句読点を含む長いテキスト フィールド (実際にはコーディングに関する記事) を含むデータを SQLite に移動する過程にあり、さまざまなテキスト インポートを試しています。

テーブルを使用して SQLite でデータベースを作成しました。

CREATE TABLE test (id PRIMARY KEY AUTOINCREMENT, textfield TEXT);

次に、.dump を使用してバックアップを行います。

次に、結果の .dump ファイルの「CREATE TABLE」行の下にテキストを手動で追加します。

INSERT INTO test textfield VALUES (1,'Is''t it great to have
                     really long text with various punctaution marks and
          newlines');

すべての一重引用符を 2 つの一重引用符に変更します (' を '' に変更します)。インデックス番号は手動で追加する必要があることに注意してください (自動的に追加する AWK/SED コマンドがあるはずです)。ダンプ ファイルの "sequence" 行の自動インクリメント番号を、追加した最後のインデックス番号よりも 1 つ上に変更します (正確な行を示すために目の前に SQLite はありませんが、明らかなはずです)。
新しいファイルを使用して、データベースに復元できます

于 2010-02-06T19:10:22.257 に答える