Python 在mysqldb中创建表

Python 在mysqldb中创建表,python,mysql,Python,Mysql,第1行:将mysqldb作为mdb导入 在纠正双重问题后,, 我犯了一个类似的错误,最后一句改为 _mysql_exceptions.ProgrammingError:(1064,“您的SQL语法有错误;请查看与您的mysql服务器版本对应的手册,以了解在第1行的“”附近使用的正确语法”) 要创建表的行已修改为 创建表Project1(IdINT主键不为空,TermVARCHAR(25)字符集utf8不为空,Type1VARCHAR(25)字符集utf8不为空,VARCHAR(30)字符集utf

第1行:将mysqldb作为mdb导入

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

要创建表的行已修改为 创建表
Project1
Id
INT主键不为空,
Term
VARCHAR(25)字符集utf8不为空,
Type1
VARCHAR(25)字符集utf8不为空,
VARCHAR(30)字符集utf8不为空,
Certainity
DOUBLE(4,3)不为空)

新问题,

我将“确定性”改为字符串

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")
文件“/home/ankitaprasad/Ontology Project3/Stanford.py”,第57行,在
当前执行(““插入INT0项目1(术语、类型1、操作、确定性)值(%s、%s、%s)”,(术语、类型1、操作、ab));
文件“/usr/local/lib/python2.7/dist-packages/MySQLdb/cursors.py”,执行中的第205行
errorhandler(self、exc、value)
defaulterrorhandler中的文件“/usr/local/lib/python2.7/dist packages/MySQLdb/connections.py”,第36行
提高errorclass,errorvalue
_mysql_exceptions.ProgrammingError:(1064,“您的SQL语法有错误;请查看与您的mysql服务器版本对应的手册,以了解在“Project1(Term,Type1,Action,Certainity)值(“”,“”,“”,“”,’0')附近使用的正确语法,第1行)
[在1.2秒内完成,退出代码为1]


这里ab=str(mod)

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

    File "/home/ankitaprasad/Ontology Project3/Stanford.py", line 57, in <module>
    cur.execute("""INSERT INT0 Project1(Term, Type1, Action, Certainity) VALUES (%s,%s,%s,%s)""",(term,type1,action,ab));
     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 'Project1(Term, Type1, Action, Certainity) VALUES ('','','','0')' at line 1")

看到没有右括号的地方了吗?要解决这个问题,您仍然有一个问题,因为需要两个参数,而不是一个,所以这是MySQL的语法错误。在提问之前,请阅读文档并仔细阅读您编写的内容,这将为您节省大量时间,尤其是在截止日期前不久。

这只意味着您的SQL语法中有错误,而不是python代码中有错误。在客户机中运行SQL语句并更正它以正确创建表。我该怎么做?在客户机中运行语句。我修改了double,括号在那里,但没有在这里打印出来。同样的错误再次出现,无法重现,您的更改导致一个有效的SQL语句,并且在mysql客户端运行时没有语法错误。不,您写的是括号。非常感谢,我有另一个类型错误问题,我是否应该将问题发布在这里?请先尝试自己找出问题所在,因为通常这些问题与stackoverflow无关-这不是针对微小印刷错误的代码更正服务。如果您不能理解,请使用缩进(每行前面4个空格)正确设置问题中的代码段格式,并确保值得提问。您真的无法区分
INT0
INTO
之间的区别吗?(提示:一个是数字,另一个是字母)。
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