堆垛' S
我希望导出一个大的mySql表数据但不保留索引并用DEFAULT替换它们。因此,当我将其导入测试环境时,我不会覆盖该表的当前索引。
所以基本上每行当前索引值都被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
谢谢
答案 0 :(得分: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';"