将数据加载到Mysql中的表中

时间:2011-11-23 13:16:03

标签: python mysql

我为表创建了4列

cur.execute("""CREATE TABLE videoinfo (
    id INT UNSIGNED PRIMARY KEY AUTO INCREMENT, 
    date DATETIME NOT NULL, 
    src_ip CHAR(32), 
    hash CHAR(150));
""")

我有一个.txt文件,里面有三列数据。我想使用LOAD DATA LOCAL INFILE命令来插入数据,但问题是,我创建的表现在有四列,第一列是id,所以,mysql可以自动从第二列插入数据或者额外的命令是需要的?

非常感谢!

1 个答案:

答案 0 :(得分:1)

AUTO INCREMENT是无效的语法。如果您查看MySQL CREATE TABLE语句的文档,您会看到正确的关键字是AUTO_INCREMENT

此外,date是一个关键字,因此您需要使用反引号引用它,如MySQL identifier文档页面所述。该文档还列出了所有keywords,必须引用它们作为标识符。为安全起见,您可以简单地引用所有标识符。

要仅将数据插入某些列,您可以显式指定列。对于LOAD DATA INFILE

LOAD DATA INFILE 'file_name'
    INTO TABLE videoinfo
    (`date`, src_ip, hash)

对于INSERT声明:

INSERT INTO videoinfo (`date`, src_ip, hash)
  VALUES (...);

这也在MySQL手册中有所体现。注意一个模式?