导入.csv以使用.sh更新数据库

时间:2013-12-03 19:00:41

标签: shell csv

当我尝试运行这个时,我在第38行得到错误1064(42000)错误:你的sql语法有错误;检查与您的mysql vrsion对应的手册,以便在EOF附近使用正确的语法>>第1行 -Bash:意外令牌附近的语法错误`('

#!/bin/bash
# Import csv into mysql
mysql -uroot -p0psupply Catalog <<EOF

# Remove old backup table
DROP TABLE parts_backup;

# Backup old parts table
CREATE TABLE parts_backup ( 
    sku varchar(50) NOT NULL COMMENT 'Standard Part Num',
    src varchar(3) NOT NULL DEFAULT 'ALL' COMMENT 'not used',
    item varchar(10) NOT NULL COMMENT 'FACTS Num',
    _IF varchar(3) NOT NULL COMMENT 'not used',
    _UM varchar(2) NOT NULL COMMENT 'Unit of Measure',
    description varchar(75) NOT NULL COMMENT 'Description',
    floor decimal(5,2) NOT NULL COMMENT 'Floor price',
    usa decimal(5,2) NOT NULL COMMENT 'USA Dealer Net',
    can decimal(5,2) NOT NULL COMMENT 'Canada Dealer Net',
    high decimal(5,2) NOT NULL COMMENT 'Highest selling price',
    available int(10) NOT NULL COMMENT 'units available (not used)',
    commission float(3,2) NOT NULL COMMENT 'commission',
    class varchar(3) NOT NULL COMMENT 'item class',
    active varchar(1) NOT NULL COMMENT 'active?',
    in_n_out varchar(1) NOT NULL COMMENT 'In & Out'
    )
ENGINE = MyISAM DEFAULT CHARSET = utf8;

INSERT INTO parts_backup SELECT * FROM parts;

# Create brand new parts table by clearing old one
TRUNCATE parts;

# upload CSV file
LOAD DATA LOCAL INFILE 'parts.csv'
INTO TABLE parts
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n';
#(sku, src, item, _IF, _UM, description, floor, usa, can, high, available);

# done
EOF>>

1 个答案:

答案 0 :(得分:1)

最后一行应该是

EOF

EOF>>
相关问题