MySQLdb Python - 使用CREATE TABLE IF NOT NOT EXISTS时仍然出错

时间:2015-06-22 15:06:01

标签: python mysql

我正在使用此代码在Python中创建包含表格的数据库:

def CreateDatabase():
    global DB_CNX
    global DB_NAME
    cursor = DB_CNX.cursor()
    cursor.execute("""CREATE DATABASE IF NOT EXISTS {} DEFAULT CHARACTER SET 'utf8'""".format(DB_NAME))
    cursor.execute("""CREATE TABLE IF NOT EXISTS NAMES(NAME VARCHAR(50) PRIMARY KEY NOT NULL)""")
    DB_CNX.close()

但即使我使用语法“IF NOT EXISTS”,我仍然会在我的控制台中遇到如下错误:

 Can't create database 'names'; database exists
  cursor.execute("""CREATE DATABASE IF NOT EXISTS {} DEFAULT CHARACTER SET 'utf8'""".format(DB_NAME))

这在SQLite 3中没有发生。我尝试使用try:except:的语法,但仍然有相同的结果。我该如何避免这些错误?

1 个答案:

答案 0 :(得分:0)

MySQL实际上是在发出警告而不是错误。

您可以禁止这样的mysql警告:

import MySQLdb as mdb
from warnings import filterwarnings

filterwarnings('ignore', category = mdb.Warning)

现在mysql警告将消失。

但是mysql错误会像往常一样显示

在 -

了解有关警告的详情

https://docs.python.org/2/library/warnings.html