【发布时间】:2012-02-14 11:28:59
【问题描述】:
我在创建数据库和表时遇到了麻烦。需要在 Python 脚本中创建数据库。
#connect method has 4 parameters:
#localhost (where mysql db is located),
#database user name,
#account password,
#database name
db1 = MS.connect(host="localhost",user="root",passwd="****",db="test")
返回
_mysql_exceptions.OperationalError: (1049, "Unknown database 'test'")
很明显,db1 需要先创建,但是如何创建呢?我在 connect() 语句之前尝试过 CREATE,但出现错误。
创建数据库后,如何创建表? 谢谢, 汤姆
这是语法,至少第一次有效。第二次自然返回数据库已经存在。现在来弄清楚如何正确使用 drop 命令。
db = MS.connect(host="localhost",user="root",passwd="****")
db1 = db.cursor()
db1.execute('CREATE DATABASE test1')
所以这在第一次通过时效果很好。第二次通过提供警告“数据库已存在”。如何处理?以下是我认为它应该如何工作,但没有。或者它应该是一个 if 语句,寻找它是否已经存在,不填充?
import warnings
warnings.filterwarnings("ignore", "test1")
【问题讨论】:
-
不要粗鲁,但你试过用谷歌搜索吗?从连接中删除 db="test" 并阅读 dev.mysql.com/doc/refman/5.0/en/sql-syntax.html 或 w3schools.com/sql/default.asp
-
是的,很多谷歌搜索(RTFM 并不粗鲁,但我不会问我是否能找到它)。是的,当我放弃“测试”时没有错误。问题是如何使用 python 而不是 SQL 创建数据库。
-
这里是语法,这行得通,至少是第一次。第二次自然返回数据库已经存在。现在来弄清楚如何正确使用 drop 命令。 db = MS.connect(host="localhost",user="root",passwd="****") db1 = db.cursor() db1.execute('CREATE DATABASE test1')
-
“删除数据库测试 1”。虽然学习 SQL 是一件好事,但您可能还想研究对象关系映射器,可以说最好的是 sqlalchemy.org。
标签: python mysql-python