【问题标题】:CREATE TABLE syntax error in mysql 6.3/python 3.5mysql 6.3/python 3.5 中的 CREATE TABLE 语法错误
【发布时间】:2016-10-24 15:15:13
【问题描述】:

我正在使用 python 在 mysql 6.3 中创建一个表。该代码在使用 sqlite 时运行良好,现在抛出以下错误。

pymysql.err.ProgrammingError: (1064, "您的 SQL 语法有错误;请查看与您的 MySQL 服务器版本相对应的手册,以了解在 'tokyoREAL, 主键 (rowid) 附近使用的正确语法)' 在第 1 行")

代码是

import pymysql
conn=pymysql.connect(host='localhost',user='root',password='password',db='testschema',charset='utf8mb4',cursorclass=pymysql.cursors.DictCursor)
a=conn.cursor()
sql='''CREATE TABLE pressure (rowid INT AUTO_INCREMENT NOT NULL, date_time, 
    tokyo REAL, primary key (rowid));'''
a.execute(sql)

非常感谢任何帮助!

【问题讨论】:

  • ...date_time - 这应该是什么?也许添加一些类型? dev.mysql.com/doc/refman/5.7/en/datetime.html
  • 查询是否在您的 python 脚本之外工作(针对 MySQL 实例而不是 SQLite)?
  • 我删除了 date_time 列,效果很好。谢谢!!!!!!

标签: python mysql


【解决方案1】:

您需要为date_time 列指定数据类型,例如DATETIME

sql='''CREATE TABLE pressure (rowid INT AUTO_INCREMENT NOT NULL, date_time DATETIME, tokyo REAL, primary key (rowid));'''

参考:

Create Table syntax

【讨论】:

    【解决方案2】:

    类型未添加到日期时间列..

    如下更改表创建语法。

    CREATE TABLE pressure (rowid INT AUTO_INCREMENT NOT NULL, date_time datetime , 
    tokyo REAL, primary key (rowid));
    

    【讨论】:

      猜你喜欢
      • 2017-06-30
      • 1970-01-01
      • 2012-07-08
      • 1970-01-01
      • 2018-06-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多