【问题标题】:#1064 - You have an error in your SQL syntax: MAX NULL problem#1064 - 您的 SQL 语法有错误:MAX NULL 问题
【发布时间】:2020-09-16 13:48:30
【问题描述】:

我是 MySQL 新手,在我正在进行的一个学习项目中遇到了一些麻烦。

每当我尝试创建表时
SQL查询:

CREATE TABLE IF NOT EXISTS `tweeter` ( 
`id` INT NULL, 
`conversation_id` INT NULL, 
`created_at` INT NULL, 
`date` VARCHAR(MAX) NULL, 
`time` VARCHAR(MAX) NULL, 
`timezone` VARCHAR(MAX) NULL, 
`user_id` INT NULL, 
`username` VARCHAR(MAX) NULL, 
`name` VARCHAR(MAX) NULL, 
`place` VARCHAR(MAX) NULL, 
`tweet` VARCHAR(MAX) NULL, 
`mentions` JSON NULL, 
`urls` JSON NULL, 
`photos` JSON NULL, 
`replies_count` INT NULL, 
`retweets_count` INT NULL, 
`likes_count` INT NULL, 
`hashtags` JSON NULL, 
`cashtags` JSON NULL,   
`link` VARCHAR(MAX) NULL, 
`retweet` BOOL NULL, 
`quote_url` VARCHAR(MAX) NULL, 
`video` INT NULL, 
`near` VARCHAR(MAX) NULL, 
`geo` VARCHAR(MAX) NULL, 
`source` VARCHAR(MAX) NULL, 
`user_rt_id` VARCHAR(MAX) NULL, 
`user_rt` VARCHAR(MAX) NULL, 
`retweet_id` VARCHAR(MAX) NULL, 
`reply_to` JSON NULL, 
`retweet_date` VARCHAR(MAX) NULL, 
`translate` VARCHAR(MAX) NULL, 
`trans_src` VARCHAR(MAX) NULL, 
`trans_dest` VARCHAR(MAX) NULL )

我收到以下错误消息:

1064 - 您的 SQL 语法有错误;查看与您的 MySQL 服务器版本相对应的手册,了解在 'MAX) NULL 附近使用的正确语法,

`time` VARCHAR(MAX) NULL,
`timezone` VARCHAR(MAX) NULL,
`user_id` INT' at line 5

这里有一些关于我正在使用的信息

  1. WAMP 服务器
  2. 服务器类型:MySQL
  3. 服务器版本:8.0.18
  4. phpMyAdmin:4.9.2.

我花了一天的时间试图解决这个问题,现在我想是时候寻求帮助了。我想知道是否有人能告诉我我做错了什么?

【问题讨论】:

    标签: mysql sql string error-handling create-table


    【解决方案1】:

    在 MySQL 中没有 VARCHAR(MAX) 这样的东西。您确实需要指定一个实际值。实际限制不是在列本身上设置,而是在行上设置,不应超过 64 kB。

    你有很多 VARCHAR 列,所以这个限制在这里很重要。不要盲目地在所有列上设置高值;相反,您应该根据它将存储的实际值调整每个列的大小。

    另外,请考虑在任何地方使用正确的数据类型而不是字符串。您的某些字符串列似乎是日期。对于这些,请使用相关的类似日期的数据类型(DATEDATETIMETIMESTAMPTIME)。

    【讨论】:

      猜你喜欢
      • 2016-10-30
      • 2017-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多