【SQL】使用UPDATE修改表字段的时候,遇到1054 或者1064的问题怎么办?

我在使用python连接sql修改表格的时间字段的时候,遇到这样一个问题:

ProgrammingError: (pymysql.err.ProgrammingError) (1064 , "You have an

error in your SQL syntax; check the manual that corresponds to your

MariaDB server version for the right syntax to use near

'14:41:32.713604 WHERE table_id ='1'' at line 1")

SQL: UPDATE jd_shop_comparison1_new SET create_time =2025-07-09 14:41:32.713604 WHERE table_id ='1' \] (Background on this error at: https://sqlalche.me/e/14/f405)

原代码:

python 复制代码
UPDATE_SQL = f"UPDATE table_name SET create_time ={create_time} WHERE table_id ='{table_id}' " #修改时间
engine.execute(UPDATE_SQL)

这个错误是由于 SQL 语句中的日期时间值没有正确使用引号引起的。

在我的 UPDATE 语句中,日期时间值 create_time 没有被引号包围,导致 MariaDB 无法正确解析这个值。

解决方法:

使用字符串引号包围括号里的字符,包括日期、时间、文本等

例如:

c 复制代码
UPDATE_SQL = f"UPDATE jd_shop_comparison1_new SET create_time = '{create_time}' WHERE table_id ='{table_id}' " #修改时间
engine.execute(UPDATE_SQL)

最终问题就解决了!

详细的错误图:

相关推荐
敲码图一乐9 分钟前
流量安全——基于Sentinel实现限流,熔断,降级
java·开发语言·数据库
孟意昶27 分钟前
Spark专题-第三部分:性能监控与实战优化(2)-分区优化
大数据·分布式·sql·性能优化·spark·big data
何故染尘優1 小时前
Redis 如何配置 Key 的过期时间?它的实现原理?
数据库·redis·缓存
落日漫游2 小时前
MySQL常用命令全攻略
数据库·sql·oracle
ZFJ_张福杰3 小时前
【Flutter】GetX最佳实践与避坑指南
android·flutter·ios·getx
野熊佩骑5 小时前
CentOS7二进制安装包方式部署K8S集群之ETCD集群部署
运维·数据库·云原生·容器·kubernetes·centos·etcd
野生技术架构师6 小时前
聊聊五种 Redis 部署模式
数据库·redis·缓存
IndulgeCui6 小时前
【金仓数据库产品体验官】KES-ORACLE兼容模式再体验之FLASHBACK
数据库
zxsz_com_cn8 小时前
钢铁厂设备健康监测系统:AIoT技术驱动的智慧运维革命
数据库
chirrupy_hamal9 小时前
PostgreSQL 流复制参数 - synchronous_standby_names
数据库·postgresql