当在infobright提示符下运行时,查询执行得非常好:
mysql> LOAD DATA INFILE '/tmp/test.agg' IGNORE INTO TABLE tb_message_content FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\\'LINES TERMINATED BY '\n';
Query OK, 2 rows affected但是,当从shell脚本运行时,相同的查询会给出一个错误:这是脚本解释查询的方式
mysql -u amr_ts_scripts -pamr_ts_scripts MVR4_ETL_DB -S /tmp/mysql-ib.sock -N -e
$'LOAD DATA INFILE \'/tmp/test.agg\'
IGNORE INTO TABLE tb_message_content \n
FIELDS TERMINATED BY \',\' \n
OPTIONALLY ENCLOSED BY \'"\' \n
ESCAPED BY \'\\\'\n
LINES TERMINATED BY \'\\n\';'引用的错误是:
ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''\'
LINES TERMINATED BY ''' at line 4
PAGER set to stdout谁能指出我面临的问题??
发布于 2012-09-20 18:44:32
stmt="LOAD DATA INFILE '$1' IGNORE INTO TABLE $2 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' ESCAPED BY '\\\\' LINES TERMINATED BY '\n';脚本中的上述语句之所以有效,是因为需要通过“\”进行转义才能对每个“\”进行转义。
https://stackoverflow.com/questions/12488533
复制相似问题