因此,我正在使用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的东西?
发布于 2013-05-28 21:26:09
连接到MySQL并将默认DB设置为testdb。这就是创建Writers表的地方。然后切换到Writers,在那里没有这样的表。例如:
con = mdb.connect('localhost', 'testuser', 'test623', 'testdb')
^^^^^^^--- default DB正在做什么
SELECT * FROM testdb.Writers会起作用的
use testdb;
SELECT * FROM Writershttps://stackoverflow.com/questions/16801727
复制相似问题