2015-08-21 24 views
0

堆棧器的MySQL導出表的索引設置爲默認

我希望導出一個大的mySql表數據,但不保留索引並將其替換爲DEFAULT。因此,當我將它導入到測試環境中時,我不會覆蓋該表的當前索引。

所以基本上每一行當前索引值默認情況下更換,所以INSERT使用自動增量來獲得一個新的指標:

INSERT INTO `user_history` (`n`, `user_uid`, `history_id`, `type`, `meta_uid`, `modified`) VALUES 
(DEFAULT, '3abc3eaf0b3e', 1, 'color', '1', '2015-07-29 08:01:52'), 
(DEFAULT, '3abc3eaf0b3e', 1, 'size', '2', '2015-07-29 08:01:52'); 

這僅僅是一個例子。我不能簡單地手動編輯文件,因爲它很大。

10MIL +1

感謝

回答

1

https://dev.mysql.com/doc/refman/5.1/en/select-into.html

SELECT NULL, `user_uid`, `history_id`, `type`, `meta_uid`, `modified` 
FROM `user_history` 
INTO OUTFILE '<file name here>.csv' 
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\n'; 

默認情況下,該文件將被輸出到你的數據目錄中,除非你明確地給MySQL的一個路徑命名文件時。

要通過命令行加載該文件:

mysql -u <user> -p <database for new table> -e "LOAD DATA INFILE '<file name>.csv' 
      INSERT INTO TABLE `user_history` 
      FIELDS TERMINATED BY ',' 
      ENCLOSED BY '\"' 
      LINES TERMINATED BY '\n';" 
+0

感謝您的@Nathan,很好的解決方案。 – elliotrock

+0

沒問題,我很高興它爲你工作! – Nathan