python,pymysql 查询某条数据是否存在,如果不存在,则插入;如果存在,则更新整条数据
时间: 2023-08-05 11:09:40 浏览: 64
mysql插入前判断数据是否存在的操作
可以使用以下代码实现:
```python
import pymysql
# 建立数据库连接
conn = pymysql.connect(
host='localhost',
port=3306,
user='root',
password='123456',
db='test',
charset='utf8mb4'
)
# 创建游标
cursor = conn.cursor()
# 查询数据是否存在
sql = "SELECT * FROM table_name WHERE id=%s"
cursor.execute(sql, ('1',))
result = cursor.fetchone()
if result:
# 存在则更新数据
sql = "UPDATE table_name SET name=%s, age=%s WHERE id=%s"
cursor.execute(sql, ('Tom', 18, '1'))
else:
# 不存在则插入数据
sql = "INSERT INTO table_name(id, name, age) VALUES (%s, %s, %s)"
cursor.execute(sql, ('1', 'Tom', 18))
# 提交事务
conn.commit()
# 关闭游标和连接
cursor.close()
conn.close()
```
其中,`table_name` 是要操作的表名,`id` 是要查询/更新/插入的主键值。首先,使用 `SELECT` 语句查询该主键对应的数据是否存在,如果存在,则使用 `UPDATE` 语句更新数据,否则,使用 `INSERT` 语句插入数据。最后,使用 `commit()` 方法提交事务,关闭游标和连接。
阅读全文