因此,我正在使用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
的东西? 最佳答案
您连接到MySQL,并将默认数据库设置为testdb
。这样便是Writers表的创建位置。然后,您切换到没有此类表的Writers
。例如
con = mdb.connect('localhost', 'testuser', 'test623', 'testdb')
^^^^^^^--- default DB
在做
SELECT * FROM testdb.Writers
将工作,将
use testdb;
SELECT * FROM Writers