Files
ZERO_CODE/ZeroCodeProject/dependency/classes/DataBaseTableController/DataBaseTableController.py
vermouth789 fe39320977 123
123
2026-01-11 00:11:34 +08:00

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
}