所以我正在使用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;
最后一行抛出错误
ERROR 1146(42S02):表'Writers.Writers'不存在
任何人都知道是什么导致了这个或为什么它首先尝试访问名为Writers.Writers
的内容?
答案 0 :(得分:1)
您连接到MySQL并将默认数据库设置为testdb
。这就是创建Writers表的地方。然后切换到Writers
,那里没有这样的表。 e.g。
con = mdb.connect('localhost', 'testuser', 'test623', 'testdb')
^^^^^^^--- default DB
做
SELECT * FROM testdb.Writers
会起作用,
use testdb;
SELECT * FROM Writers