sql查询描述表的问题(sql x python)

kdfy810k  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(197)

我正在关注一本书,现在的目标是编写一些python代码来与log表交互。到目前为止,我已经成功地为数据库定义了连接特征,导入了驱动程序模块,创建了一个连接对象,并创建了一个游标(顺便说一下,我正在使用idle)

>>> dbconfig = { 'host': '127.0.0.1',
         'user' : 'vsearch',
         'password' : 'vsearchpasswd',
         'database' : 'vsearchlogDB', }
>>> import mysql.connector
>>> conn = mysql.connector.connect(**dbconfig)
>>> cursor = conn.cursor()
>>> _SQL = """show tables"""
>>> cursor.execute(_SQL)
>>> res = cursor.fetchall()
>>> res
[('log',)]

但是当我最终想要描述日志表时,出现了一个错误。

>>> _SQL = """descibe log"""
>>> cursor.execute(_SQL)
Traceback (most recent call last):
  File "<pyshell#12>", line 1, in <module>
    cursor.execute(_SQL)
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python38-32\lib\site-packages\mysql\connector\cursor.py", line 569, in execute
    self._handle_result(self._connection.cmd_query(stmt))
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python38-32\lib\site-packages\mysql\connector\connection.py", line 598, in cmd_query
    result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query))
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python38-32\lib\site-packages\mysql\connector\connection.py", line 486, in _handle_result
    raise errors.get_exception(packet)
mysql.connector.errors.ProgrammingError: 1064 (42000): 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 'descibe log' at line 1
>>> res = cursor.fetchall()
Traceback (most recent call last):
  File "<pyshell#13>", line 1, in <module>
    res = cursor.fetchall()
  File "C:\Users\Admin\AppData\Local\Programs\Python\Python38-32\lib\site-packages\mysql\connector\cursor.py", line 895, in fetchall
    raise errors.InterfaceError("No result set to fetch from.")
mysql.connector.errors.InterfaceError: No result set to fetch from.
>>>

根据这本书,这应该发生。相反,我得到了一个错误。

>>> _SQL = """describe log"""
>>> cursor.execute(_SQL)
>>> res = cursor.fetchall()
>>> res
[('id', 'int(11)', 'NO', 'PRI', None, 'auto_increment'), ('ts',
'timestamp', 'NO', '', 'CURRENT_TIMESTAMP', ''), ('phrase',
'varchar(128)', 'NO', '', None, ''), ('letters', 'varchar(32)',
'NO', '', None, ''), ('ip', 'varchar(16)', 'NO', '', None, ''),
('browser_string', 'varchar(256)', 'NO', '', None, ''), ('results',
'varchar(64)', 'NO', '', None, '')]

>>> for row in res:
    print(row)

('id', 'int(11)', 'NO', 'PRI', None, 'auto_increment')
('ts', 'timestamp', 'NO', '', 'CURRENT_TIMESTAMP', '')
('phrase', 'varchar(128)', 'NO', '', None, '')
('letters', 'varchar(32)', 'NO', '', None, '')
('ip', 'varchar(16)', 'NO', '', None, '')
('browser_string', 'varchar(256)', 'NO', '', None, '')
('results', 'varchar(64)', 'NO', '', None, '')
2skhul33

2skhul331#

你的陈述好像有错。改变拼写错误。

_SQL = """describe log"""

相关问题