我有一个来自客户端的非标准化事件日记CSV,我正在尝试将其加载到MySQL表中,以便我可以重构为一种理智的格式.我创建了一个名为"CSVImport"的表,它为CSV文件的每一列都有一个字段.CSV包含99列,因此这本身就是一项非常艰巨的任务:
CREATE TABLE 'CSVImport' (id INT);
ALTER TABLE CSVImport ADD COLUMN Title VARCHAR(256);
ALTER TABLE CSVImport ADD COLUMN Company VARCHAR(256);
ALTER TABLE CSVImport ADD COLUMN NumTickets VARCHAR(256);
...
ALTER TABLE CSVImport Date49 ADD COLUMN Date49 VARCHAR(256);
ALTER TABLE CSVImport Date50 ADD COLUMN Date50 VARCHAR(256);
Run Code Online (Sandbox Code Playgroud)
表中没有约束,并且所有字段都包含VARCHAR(256)值,但包含计数(由INT表示),是/否(由BIT表示),价格(由DECIMAL表示)和文本blurbs(由TEXT代表).
我试图将数据加载到文件中:
LOAD DATA INFILE '/home/paul/clientdata.csv' INTO TABLE CSVImport;
Query OK, 2023 rows affected, 65535 warnings (0.08 sec)
Records: 2023 Deleted: 0 Skipped: 0 Warnings: 198256
SELECT * FROM CSVImport;
| NULL | NULL | NULL …Run Code Online (Sandbox Code Playgroud) 如何从查询中为表创建mysql转储?
我需要这样的东西......
mysqldump -uroot -pxxxx mydb "select * from table where name='1';" > /tmp/a
Run Code Online (Sandbox Code Playgroud)
谢谢.
我正在使用 mysqldump 创建实时应用程序的数据库转储以供开发人员使用。
该数据包含客户数据。我想匿名化这些数据,即删除客户姓名/信用卡数据。
一个选项是:
但这需要很大的开销。更好的解决方案是在转储创建期间进行匿名化。
我想我最终会解析所有输出mysqlsqldump?有没有更聪明的解决方案?