在不使用主键的情况下,可以使用其他字段或组合字段作为条件来防止更新或删除MySQL记录。以下是一种解决方法的示例代码:
import pymysql
def update_record(connection, table, conditions, update_data):
query = f"UPDATE {table} SET "
update_values = []
for key, value in update_data.items():
update_values.append(f"{key}='{value}'")
query += ", ".join(update_values)
query += f" WHERE {conditions}"
with connection.cursor() as cursor:
cursor.execute(query)
def delete_record(connection, table, conditions):
query = f"DELETE FROM {table} WHERE {conditions}"
with connection.cursor() as cursor:
cursor.execute(query)
# 示例用法
connection = pymysql.connect(host='localhost', user='username', password='password', db='database')
table = "my_table"
conditions = "name='John' AND age=25"
update_data = {
"name": "John Doe",
"age": 26,
"email": "john.doe@example.com"
}
update_record(connection, table, conditions, update_data)
delete_record(connection, table, conditions)
在上面的示例中,update_record
函数使用给定的条件和更新数据来构建更新记录的SQL查询,并通过执行cursor.execute()
方法来更新MySQL记录。类似地,delete_record
函数构建一个删除记录的SQL查询并执行相同的操作。这样,可以通过指定条件来阻止对MySQL记录进行更新或删除操作。