Mysql加载数据infile指定列

时间:2014-09-01 09:31:58

标签: mysql sql-update load-data-infile

我有一张已填充数据的表格:

Table routeur_su 
+--------------------+--------------+------+-----+---------+-------+
| Field              | Type         | Null | Key | Default | Extra |
+--------------------+--------------+------+-----+---------+-------+
| hostname           | varchar(64)  | NO   | PRI | NULL    |       |
| code_site          | varchar(64)  | NO   | MUL | NULL    |       |
| ip                 | varchar(64)  | NO   |     | NULL    |       |
| ios                | varchar(64)  | YES  |     | NULL    |       |
| modele             | varchar(64)  | YES  |     | NULL    |       |
| uptime             | datetime     | YES  |     | NULL    |       |
| date_polling       | datetime     | YES  |     | NULL    |       |

+--------------------------------------------------+-----------+-----------------+------+--------+--------+
| hostname   | code_site | ip              | ios  | modele | uptime |
+--------------------------------------------------+-----------+-----------------+------+--------+--------+
| <hostname> | 131123S0  | 126.x.x.x | NULL | NULL   | NULL   |
+--------------------------------------------------+-----------+-----------------+------+--------+--------+

我有一个.csv文件,其中包含:

<hostname>;1/2/24 17:14:00;Cisco 1803

(其他2个信息是正常运行时间和模型)

我希望MySQL能够更新具有正常运行时间和模型的行。 为此,我在BASH脚本中使用了它:

version_router_su_file="$DIR/working-dir/shver.csv"
db_routeur_table="routeur_su"
...
$mysql -h $db_address -u $db_user -p$db_passwd $db_name -e "load data local infile '$version_router_su_file' INTO TABLE $db_routeur_table fields terminated by ';'(hostname, uptime, modele) ;"

但没有任何反应。我阅读了有关加载数据的文档,并尝试了几个但是......仍然无法正常工作。 我对此代码没有任何错误,它只是不会更新。

创建像贴在中的重复表 MySQL LOAD DATA INFILE with ON DUPLICATE KEY UPDATE 在为数据库中的每个表执行此操作时,将消耗大量资源。不是其他任何方式吗?

0 个答案:

没有答案