0

所以我正在使用 Python 做一个基本的 MySQL 教程,我首先使用下面的代码来创建一个简单的数据库。

import MySQLdb as mdb

con = mdb.connect('localhost', 'testuser', 'test623', 'testdb')

with con:
    cur = con.cursor()
    cur.execute("DROP TABLE IF EXISTS Writers")
    cur.execute("CREATE TABLE Writers (Id INT PRIMARY KEY AUTO_INCREMENT, Name VARCHAR(25))")
    cur.execute("INSERT INTO Writers(Name) VALUES ('Jack London')")
    cur.execute("INSERT INTO Writers(Name) VALUES ('Honore de Balzac')")
    cur.execute("INSERT INTO Writers(Name) VALUES ('Lion Feuchtwanger')")
    cur.execute("INSERT INTO Writers(Name) VALUES ('Emile Zola')")
    cur.execute("INSERT INTO Writers(Name) VALUES ('Truman Capote')")

执行得很好。然后我运行以下 MySQL 命令。

USE Writers;
SELECT * FROM Writers;

最后一行抛出错误

错误 1146 (42S02):表 'Writers.Writers' 不存在

任何人都知道是什么原因造成的,或者为什么它首先试图访问被调用Writers.Writers的东西?

4

1 回答 1

1

您连接到 MySQL 并将默认数据库设置为testdb. 这就是创建 Writers 表的地方。然后切换到Writers没有这样的表的地方。例如

con = mdb.connect('localhost', 'testuser', 'test623', 'testdb')
                                                       ^^^^^^^--- default DB

正在做

SELECT * FROM testdb.Writers

会起作用的

use testdb;
SELECT * FROM Writers
于 2013-05-28T21:26:09.727 回答