MySQL语法错误“在desc附近使用正确的语法
我正在使用Python并使用MySQLdb模块。我有一个有效的连接(我可以成功运行其他查询)MySQL语法错误“在desc附近使用正确的语法
c.execute("ALTER TABLE results ADD COLUMN desc TEXT")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/pymodules/python2.7/MySQLdb/cursors.py", line 166, in execute
self.errorhandler(self, exc, value)
File "/usr/lib/pymodules/python2.7/MySQLdb/connections.py", line 35,
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 'desc TEXT' at line 1")
我以前也有类似的麻烦; MySQLdb的语法错误信息是,非常具有说明性,。
这怎么解决?
我相信desc
被保留。它用在ORDER BY
子句中
如果您在其周围放置回滴标签,您也许可以使用它,但我认为将名称更改为非保留字会更好。
就是这样。 'desc'是降序的mysql关键字。 – Jarek
http://dev.mysql.com/doc/refman/5.1/en/reserved-words.html –
第二次我读它,desc hmmmm。 –
desc
是MySQL中的保留关键字 - 这里记录:http://dev.mysql.com/doc/refman/5.0/en/reserved-words.html
如果你坚持要用desc
你应该使用反勾号字符(')转义 - 如下所述:How do I escape reserved words used as column names? MySQL/Create Table
我我们建议您将desc
列名更改为例如description
,因为我认为最好不要在数据库模式中包含保留关键字。
第1步。比较你的语法:http://dev.mysql.com/doc/refman/5.1/en/alter-table.html。错误消息不应该是描述性的。 –
我认为*错误消息来自SQL引擎本身,而不是MySQLdb。 – mtrw