2017-11-07 13 views
0

質問があります。さまざまな値のmysqluの値を更新する

SQLのcertianカラムの値を変更したいのですが、これを行う方法はわかっていますが、その前にCSVに値をエクスポートする前に、それらの値をインポートしてみたい再度何も変更されていないことを確認してください。どうすればいい?

問題のテーブルは約5000行ですので、私はちょうど1列を変更することができない限り、テーブルをダンプし、値を変更してから、テーブルを破棄してダンプを取り込みます。簡単な方法がありますか?

+0

重複して更新したい場合は、https://stackoverflow.com/questions/32214063/if-exists-update-else-insert-csv-data-mysqlを参照してください。 –

答えて

0

私の解決策です。 CLIツールを使用してmysqlバックエンドを使用してください(例:WindowsではCMDを使用してください)。 私の単純な例は、このようなものです: - 私はテストという名前のテーブルを作成し、いくつかの行でそれを移入しています: :次に

create table test 
(col1 varchar(10), col2 varchar(20), col3 varchar(30) 
); 

Insert into test values 
('nice', 'good', 'well'), 
('best', 'bad', 'great'), 
('cute','love','alone'); 
  • 、私はcsvファイルにテーブルをエクスポートしています - あなたの出力を保存することを可能にしている// ...あなたと:あなたは私のCを交換する必要があります - 右のディレクトリを見つけるために
    > SELECT * 
    >  FROM test 
    >  INTO OUTFILE 'C://ProgramData//MySQL//MySQL Server 5.7//Uploads//test.csv' 
    >   FIELDS TERMINATED BY '#' 
    >   LINES TERMINATED BY '\n'; 
    

    してください、

    • SHOW VARIABLES LIKE "secure_file_priv";

      はその後、自分のディレクトリに移動して、自分のものを修正します。■(任意のOSのために働いて)このコマンドを使用します。その後、すべての古いデータを削除します:delete from test;

      LOAD DATA LOCAL INFILE 'C://ProgramData//MySQL//MySQL Server 5.7//Uploads//test.csv' 
      INTO TABLE test 
      FIELDS TERMINATED BY '#' 
      LINES TERMINATED BY '\n'; 
      

    希望を助ける:

  • はその後のtest.CSVファイルをロードします。

関連する問題