Могу ли я создать базу данных, используя назначенную переменную в Py MySQL? - PullRequest
1 голос
/ 05 августа 2020

Я изучаю Py MySQL. Если я спросил что-нибудь глупое, пожалуйста, простите меня.

Я надеюсь создать сценарий, который будет автоматически определять, существует ли база данных или нет. Если нет, создам тот. Если существует, ничего не будет делать. Ниже мои скрипты. Я не смог создать базу данных. Мы будем очень признательны за любые предложения.

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")

1 Ответ

0 голосов
/ 05 августа 2020

Ваша проблема - if os.path.isfile(db_name): строка. Он проверяет наличие файла и, если он есть, не создает базу данных. Я бы посоветовал попытаться создать базу данных без каких-либо условий внутри блока try. Если база данных существует, она выдаст исключение, которое вы можете перехватить, в противном случае она просто создаст базу данных.

...