使用脚本将.csv文件加载到MySQL数据库中

时间:2012-04-20 16:44:40

标签: mysql linux ubuntu csv

我正在使用Ubuntu 10.04 LTS命令行来运行mySQL 5.1.61脚本,该脚本应该使用.csv文件并使用其内容来填充我之前在脚本中创建的表。

以下是脚本中的内容(csv有三列,名字,姓氏和俱乐部):

-- Import club roster from csv.
-- Create a table to store club data.
CREATE TABLE club_roster (
    first_name VARCHAR(32),
    last_name VARCHAR(32),
    club VARCHAR(32)
)

接下来是:

-- Put information from csv into table.
LOAD DATA LOCAL INFILE '/complete/path/to/file.csv'
    INTO TABLE club_roster
    FIELDS TERMINATED BY ','
    ENCLOSED BY '"'
    LINES TERMINATED BY '\n'
    IGNORE 1 LINES;

当我尝试运行它时,我收到此错误:

  

第17行的错误1064(42000):您的SQL语法出错;   检查与您的MySQL服务器版本对应的手册   正确的语法在'LOAD DATA LOCAL INFILE附近使用   '/complete/path/to/file.csv'INTO TABL'在第8行

我的语法不正确?我已经尝试了文件的每个路径组合,包括单引号,没有单引号,整个路径,只有文件,文件结尾,没有文件结尾,以及这些的组合。

有什么想法吗?谢谢你的帮助!

编辑:我正在使用命令

mysql < 'scriptFileName' -u root -p

然后输入我的密码来运行脚本。命令会重要吗?

1 个答案:

答案 0 :(得分:1)

您应该使用分号终止create table命令。像这样:

this.on("change", function(e, options){
    if(options.ignore !== true && this.hasChanged("zoom")){
        getElement("zoomchanged").value = parseInt(getElement("zoomchanged").value) + 1;
        console.log(this.get("zoom"));
        getElement("zoom").value = this.get("zoom");
        this.set("j", this.get("zoom"), {ignore: true});
    }
});