You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python操作SQL执行CREATE TABLE建表时语法报错问题咨询

语法错误原因

  • 核心问题是列名使用了带空格的命名,SQL会将空格识别为标识符/关键字的分隔符,无法正确解析列名:
    1. population size 被SQL误判为列名是population,size是数据类型前缀,但后面又跟了INTEGER(10),直接触发语法冲突
    2. capital city 同理被误判为列名capital + 无效关键字city,后续的VARCHAR(300)也无法被正确识别
  • 如果你确实需要保留空格作为列名的一部分,需要用对应数据库的标识符包裹符括住列名(MySQL用反引号`,PostgreSQL/SQL Server用双引号,需开启对应配置),更推荐的写法是用下划线代替空格命名列,避免额外兼容问题。

修正后的建表语句示例

mycursor = mydb.cursor()
# 调整列名的空格为下划线后即可正常执行
mycursor.execute("CREATE TABLE countries (name VARCHAR(300), population_size INTEGER(10), \
capital_city VARCHAR(300))")
mycursor.execute("SHOW TABLES")
for tb in mycursor:
    print(tb)

内容的提问来源于stack exchange,提问作者Hagai Buachi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 16:42:04