0

私の問題は、Excel.cvsファイルにインデックスキーがないため、SQLデータベースにインポートできないことです。

データベースの構造は次のとおりです。

+-----+------+-----+-----+---------+------+-------+----+
|from | to   |cont |desc |date_time| total| amount| id |
+-----+------+-----+-----+---------+------+-------+----+

idは自動インクリメントのプライマリです。

cvsファイルの内容:

12345678910 17071234569 UNITED STATES OF AMERICA    California  12/15/2012 2:41   4:00  0.04536
12345678910 17861234569 UNITED STATES OF AMERICA    Florida     12/15/2012 2:41   4:00  0.076

メモ帳++のcvs:

12345678910,17071234569,UNITED STATES OF AMERICA,California,12/15/2012 2:41,4:00,0.04536
12345678910,17861234569,UNITED STATES OF AMERICA,Florida,12/15/2012 2:41,4:00,0.076

cvsをデータベースにインポートすると、IDである1つの列が欠落していると常に表示されますが、ID列を作成すると、その列にデータがないと常に表示され、IDに値を入力すると常に表示されますCVSファイルの列でデータベースのIDが混同されます。

元:

+---+
|ID |
+---+
|1  |
+---+
|   |
+---+
|1  |
+---+
|2  |

ID列がなくてもcvsをインポートでき、データベースにインポートされたファイルが自動的にIDを取得できるようにするための、ここでの解決策は何でしょうか。

4

1 に答える 1

1

簡単に説明させてください。テーブルには8つの引数が必要で、7つしか指定していません。insertステートメントを使用してレコードを挿入する場合に可能です。インポートの場合は、すべての列の詳細を指定する必要があります。自動インクリメントしても列を残すことはできません。したがって、ID列に自分自身を与える必要があります。

私の提案は次のとおりです。CSVファイルを取得した方法はわかりませんが、MS-ExcelでCSVファイルを開くことができます。これで、そこに列を簡単に追加でき、複数回クリックするだけでシーケンスを生成できることがわかりました。

テーブルにレコードを挿入すると、行数を知ることができます。ここで、SQLプロンプトでこのコマンドを使用するか、PHPMyAdminで常に1つのSQLプロンプトを見つけることができます。

ALTER TABLE t AUTO_INCREMENT = <number_of_rows+1>;
于 2012-12-17T03:21:24.683 に答える