python - 我可以在 PyMySQL 中使用分配的变量创建数据库吗?
问题描述
我正在学习 PyMySQL。如果我问了什么愚蠢的事情,请原谅我。
我希望创建一个可以自动判断数据库是否存在的脚本。如果没有,将创建一个。如果存在,将什么都不做。下面是我的脚本。我无法创建数据库。任何建议将不胜感激。
import mysql.connector as sql
from mysql.connector import Error
import os
#create a database
db_name = input("Input database name:")
db_name = db_name.strip()
try:
db = sql.connect(host='localhost',
user='user',
password='SQLpractice',
)
cursor = db.cursor()
# cursor.execute("flg = False if NOT EXISTS Electronics;")
if os.path.isfile(db_name):
flg = True
print(db_name, " exists. Nothing to do.\n")
else:
flg = False
print(db_name," does not exist. Will create it if no errors happened.\n")
cursor.execute("CREATE DATABASE IF NOT EXISTS %s",(db_name) )
print("Show database below.\n")
cursor.execute("SHOW DATABASES")
except Error as e:
print("Error, cannot create database, database exists or something else wrong.\n")
finally:
if flg:
print("Created database.\n")
else:
print("No database created. Database exists or something wrong (flg=",flg,").\n")
解决方案
你的问题是if os.path.isfile(db_name):
线。它检查文件是否存在,如果存在,则不会创建数据库。我建议尝试在 try 块内创建一个没有任何条件的数据库。如果数据库存在,那么它将引发您可以捕获的异常,否则它将简单地创建数据库。
推荐阅读
- c# - 在 MainLayout 上设置参数的最佳实践
- identityserver4 - 为什么可以从 Identity Server 基本 url 访问 api 中的控制器?
- python - 无法使用 NETMIKO 在路由器上建立 ssh 连接
- python-3.x - 如何从 python 中移动文件中删除一些错误
- xcode - Xcode 错误:与 Apple 的通信失败。您无权执行此操作。当我有
- javascript - 通过直接路径在 JS 中读取网站本地的 JSON 文件
- java - gradle 中的每个模块只使用一个构建目录
- sql - 选择具有特定属性但从未具有此属性的条目
- ruby-on-rails - 我在 Windows 上安装 pg gem 时遇到这种错误
- solr - Solr 变音符号处理