在mysqldb中创建表

时间:2015-06-08 02:40:50

标签: python mysql

Traceback (most recent call last):

  File "****", line 17, in module
    cur.execute("CREATE TABLE `Project1`(`Id` INT PRIMARY KEY NOT NULL ,`TERM` VARCHAR(25) CHARACTER SET utf8 NOT NULL, `TYPE1` VARCHAR(25) CHARACTER SET utf8 NOT NULL, `ACTION` VARCHAR(30) CHARACTER SET utf8 NOT NULL, `CERTAINITY` DOUBLE(3) NOT NULL");
  File "/usr/local/lib/python2.7/dist-packages/MySQLdb/cursors.py", line 205, in execute
    self.errorhandler(self, exc, value)
  File "/usr/local/lib/python2.7/dist-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler
    raise errorclass, errorvalue
_mysql_exceptions.ProgrammingError: (1064, "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 ') NOT NULL' at line 1")

第1行:将mysqldb导入为mdb

纠正双重问题后, 我得到了一个类似的错误,最后一句改为 _mysql_exceptions.ProgrammingError:(1064,“您的SQL语法中有错误;请查看与您的MySQL服务器版本对应的手册,以便在第1行附近使用正确的语法”)

创建表的行被修改为 CREATE TABLE Project1Id INT PRIMARY KEY NOT NULL,Term VARCHAR(25)CHARACTER SET utf8 NOT NULL,Type1 VARCHAR(25)CHARACTER SET utf8 NOT NULL,{ {1}} VARCHAR(30)CHARACTER SET utf8 NOT NULL,Action DOUBLE(4,3)NOT NULL)

新问题,

我将'确定性'改为字符串

Certainity

[以1.2秒结束,退出代码为1]

这里ab = str(mod)

1 个答案:

答案 0 :(得分:0)

首先,您的整个create语句格式化为:

CREATE TABLE `Project1` (
    `Id` INT PRIMARY KEY NOT NULL,
    `TERM` VARCHAR(25) CHARACTER SET utf8 NOT NULL,
    `TYPE1` VARCHAR(25) CHARACTER SET utf8 NOT NULL,
    `ACTION` VARCHAR(30) CHARACTER SET utf8 NOT NULL,
    `CERTAINITY` DOUBLE(3) NOT NULL

查看您在哪里错过了结束括号?解决这个问题,你仍然遇到问题DOUBLE需要两个参数,而不是一个,所以这是MySQL的语法错误。在阅读问题之前,请阅读文档并仔细查看您所写的内容,这将为您节省大量时间,特别是在截止日期前不久。