3

この形式の行を含むテキストファイルがあります。

com1、System Access、MinimumPasswordAge、1
com1、System Access、MaximumPasswordAge、42
com1、System Access、MinimumPasswordLength、7

このデータを次の形式で3つの別々の行にインポートしたいと思います。

列に「com1」、ID列に
「システムアクセス」、Audit_Type列に
「MinimumPasswordAge」、System_Setting列に
「1」Actual_Value

Windows7SP1でMySQLクエリブラウザを使用しています。

4

1 に答える 1

2
  1. データを保持するテーブルを作成します。

  2. CSVファイルを作成します。フィールドヘッダーを含めないでください。

  3. MySQLクエリブラウザを開き、SQLを実行します。


load data local infile 'fullpath.csv' into table tableName
fields terminated by ','
lines terminated by '\n'
(ID, Audit_Type, System_Setting, Actual_Value);

注: Windowsシステムでテキストファイルを生成した場合LINES TERMINATED BY '\r\n'、Windowsプログラムは通常2文字を行末記号として使用するため、ファイルを正しく読み取るためにを使用する必要がある場合があります。


更新1

ご覧のとおり、3 out of 81レコードは挿入されるだけです

com1、System Access、MinimumPasswordAge、1
com2、System Access、MinimumPasswordAge、1
com3、System Access、MinimumPasswordAge、1

他の人は失敗します

com1、Event Audit、AuditSystemEvents、0
com2、Kerberos Policy、MaxTicketAge、10
com3、System Access、NewAdministratorNameAdministrator、1

これは、列IDを主キーとして設定したためです。com1, com2, com3すでにテーブルに存在していました。主キーは定義上一意です。すべての行を挿入できるようにするための最良の方法は、自動インクリメントされる別の列を作成し、これを主キーとして設定することです。

Create Table system_settings
(
    RecordID int NOT NULL AUTO_INCREMENT,
    ID VARCHAR(30),
    Audit_Type VARCHAR(30), 
    System_Setting VARCHAR(30), 
    Actual_Value int,
    CONSTRAINT table_PK PRIMARY KEY (RecordID) 
)
于 2012-09-03T01:09:27.033 に答える