89 lines
2.9 KiB
Python
89 lines
2.9 KiB
Python
|
|
"""
|
||
|
|
@project:DataBaseTableController
|
||
|
|
@File:DataBaseTableController.py
|
||
|
|
@IDE:PyCharm
|
||
|
|
@Author:徐彬程
|
||
|
|
@Date:2024/1/30 11:20
|
||
|
|
"""
|
||
|
|
from pymysql import OperationalError, ProgrammingError
|
||
|
|
|
||
|
|
|
||
|
|
class DataBaseTableControllerClass:
|
||
|
|
@classmethod
|
||
|
|
def CreateField(self, connection, data):
|
||
|
|
try:
|
||
|
|
with connection.cursor() as cursor:
|
||
|
|
cursor.execute(f'ALTER TABLE {data["table_name"]} ADD COLUMN ' + ' '.join(data["new_column"]))
|
||
|
|
except OperationalError as e:
|
||
|
|
return str(e)
|
||
|
|
except ProgrammingError as c:
|
||
|
|
return str(c)
|
||
|
|
# 关闭连接
|
||
|
|
connection.close()
|
||
|
|
|
||
|
|
@classmethod
|
||
|
|
def DeleteField(self, connection, data):
|
||
|
|
try:
|
||
|
|
with connection.cursor() as cursor:
|
||
|
|
cursor.execute(f'ALTER TABLE {data["table_name"]} DROP COLUMN ' + ' '.join(data["del_column"]))
|
||
|
|
except OperationalError as e:
|
||
|
|
return str(e)
|
||
|
|
except ProgrammingError as c:
|
||
|
|
return str(c)
|
||
|
|
# 关闭连接
|
||
|
|
connection.close()
|
||
|
|
|
||
|
|
@classmethod
|
||
|
|
def UpdateField(self, connection, data):
|
||
|
|
try:
|
||
|
|
with connection.cursor() as cursor:
|
||
|
|
cursor.execute(
|
||
|
|
f'ALTER TABLE {data["table_name"]} MODIFY COLUMN ' + ' '.join(data["old_column"]) + ' '.join(
|
||
|
|
data["new_column"]))
|
||
|
|
except OperationalError as e:
|
||
|
|
return str(e)
|
||
|
|
except ProgrammingError as c:
|
||
|
|
return str(c)
|
||
|
|
# 关闭连接
|
||
|
|
connection.close()
|
||
|
|
|
||
|
|
@classmethod
|
||
|
|
def BuildDataBaseTableData(cls, request):
|
||
|
|
table_name = request.data['table_name']
|
||
|
|
sets = 'utf8mb4'
|
||
|
|
collate = 'utf8mb4_unicode_ci'
|
||
|
|
old_table_name = ''
|
||
|
|
new_table_name = ''
|
||
|
|
auto_list = []
|
||
|
|
new_column = ''
|
||
|
|
del_column = ''
|
||
|
|
old_column = ''
|
||
|
|
if 'sets' in request.data:
|
||
|
|
sets = request.data['sets']
|
||
|
|
if 'collate' in request.data:
|
||
|
|
collate = request.data['collate']
|
||
|
|
if 'old_table_name' in request.data:
|
||
|
|
old_table_name = request.data['old_table_name']
|
||
|
|
if 'new_table_name' in request.data:
|
||
|
|
new_table_name = request.data['new_table_name']
|
||
|
|
if 'auto_list' in request.data:
|
||
|
|
auto_list = request.data['auto_list']
|
||
|
|
if 'new_column' in request.data:
|
||
|
|
new_column = request.data['new_column']
|
||
|
|
if 'del_column' in request.data:
|
||
|
|
del_column = request.data['del_column']
|
||
|
|
if 'old_column' in request.data:
|
||
|
|
old_column = request.data['old_column']
|
||
|
|
|
||
|
|
return {
|
||
|
|
"database_name": table_name,
|
||
|
|
"sets": sets,
|
||
|
|
"collate": collate,
|
||
|
|
"old_table_name": old_table_name,
|
||
|
|
"new_table_name": new_table_name,
|
||
|
|
"auto_list": auto_list,
|
||
|
|
"new_column": new_column,
|
||
|
|
"del_column": del_column,
|
||
|
|
"old_column": old_column
|
||
|
|
}
|