1

頭が爆発しそうなので誰か助けてください。

sqlite3 でデータをインポートしようとしています。ファイルがpromos.sqlありpromos.csvます。これをsqliteシェルで実行しようとしました:

.read promos.sql

または、UNIX プロンプトでこれを実行します。

sqlite3 development.sqlite3<promos.sqlite3

エラーが発生するたびに

エラー: 行 1 付近: "," 付近: 構文エラー  
エラー: 18 行目付近: "," 付近: 構文エラーなど

ファイルには次の行があります。

INSERT INTO promos (name, promo_type, category, phone, email, message, created_at)  VALUES  
('John', 1, 3, '+111 11 111 111 11', 'some@email.com', 'Some message', '2009-09-24 12:17:17'),etc

そのため、列の列挙が行われる各行でエラーが発生します。

私が試したら

.import promos.csv promos

それは言います:

エラー: promos.csv 行 1: 9 列のデータが必要ですが、1 列が見つかりました

しかし、ファイルには予想どおり9列があります:

"13","ジョン","1","3","+111 11 111 111 11","some@email.com","メッセージ","2009-09-24 15:17:17" 、「2009-09-24 15:17:17」

なぜ機能しないのですか?

4

1 に答える 1

5

SQLの問題の場合:INSERTステートメントの最後に、必要なセミコロンではなくコンマがありますか?実行しようとしているSQLファイルの数行を投稿してください。また、のCREATETABLEステートメントも投稿してくださいpromos

csv問題の場合:sqliteは|を使用します デフォルトの区切り文字として使用するため、カンマを使用するように設定する必要があります。さらに、sqlite importは引用符で囲まれた列を認識しないため、データにコンマが含まれている場合は、別の方法を使用してデータをインポートすることをお勧めします。詳細については、この記事を参照してください。

于 2012-05-26T15:19:56.720 に答える