- mysql_manager.py代码
import mysql
from mysql.connector import errorcode
class MysqlManager():
dbconfig = {
"database":"smth",
"user":"root",
"password":"root",
"host":"localhost"
}
tables = {}
tables['post'] = (
"CREATE TABLE `post` ("
"`topic_id` varchar(16) NOT NULL,"
"`content` varchar(10240) NOT NULL DEFALT '',"
"`post_index` int NOT NULL default 0,"
"UNIQUE(`topic_id`,`post_index`)"
") ENGINE = InnoDB"
)
def __init__(self,size_pool):
try:
cnx = mysql.connector.connect(user=self.dbconfig['user'],password=self.dbconfig['password'])
except mysql.connector.Error as err:
print(err)
return
cursor = cnx.cursor()
try:
cnx.database = self.dbconfig['database']
except mysql.connector.Error as err:
if err.errno == errorcode.ER_BAD_DB_ERROR:
self.creat_database(cursor)
cnx.database = self.dbconfig['database']
self.creat_tables(cursor)
finally:
cursor.close()
cnx.close()
def creat_database(self,cursor):
try:
cursor.execute(
"CREATE DATABASE {} CHARACTER SET 'utf8'".format(self.dbconfig['database']))
except mysql.connector.Error as err:
print(err)
exit(1)
def creat_tables(self,cursor):
try:
for name, ddl in self.tables.items():
cursor.execute(ddl)
except mysql.connector.Error as err:
if err.errno == errorcode.ER_TABLE_EXISTS_ERROR:
print(err)
else:
print(err)
else:
print("tables created")
if __name__=="__main__":
mysql_mgr = MysqlManager(4)
- 结果
- 待解决:
表未创建成功