#1064-您的sql语法有一个错误:max null问题

xzabzqsa  于 2021-08-13  发布在  Java
关注(0)|答案(1)|浏览(502)

我是mysql的新手,在一个学习项目中遇到了一些小麻烦。
每当我尝试创建表时
sql查询:

  1. CREATE TABLE IF NOT EXISTS `tweeter` (
  2. `id` INT NULL,
  3. `conversation_id` INT NULL,
  4. `created_at` INT NULL,
  5. `date` VARCHAR(MAX) NULL,
  6. `time` VARCHAR(MAX) NULL,
  7. `timezone` VARCHAR(MAX) NULL,
  8. `user_id` INT NULL,
  9. `username` VARCHAR(MAX) NULL,
  10. `name` VARCHAR(MAX) NULL,
  11. `place` VARCHAR(MAX) NULL,
  12. `tweet` VARCHAR(MAX) NULL,
  13. `mentions` JSON NULL,
  14. `urls` JSON NULL,
  15. `photos` JSON NULL,
  16. `replies_count` INT NULL,
  17. `retweets_count` INT NULL,
  18. `likes_count` INT NULL,
  19. `hashtags` JSON NULL,
  20. `cashtags` JSON NULL,
  21. `link` VARCHAR(MAX) NULL,
  22. `retweet` BOOL NULL,
  23. `quote_url` VARCHAR(MAX) NULL,
  24. `video` INT NULL,
  25. `near` VARCHAR(MAX) NULL,
  26. `geo` VARCHAR(MAX) NULL,
  27. `source` VARCHAR(MAX) NULL,
  28. `user_rt_id` VARCHAR(MAX) NULL,
  29. `user_rt` VARCHAR(MAX) NULL,
  30. `retweet_id` VARCHAR(MAX) NULL,
  31. `reply_to` JSON NULL,
  32. `retweet_date` VARCHAR(MAX) NULL,
  33. `translate` VARCHAR(MAX) NULL,
  34. `trans_src` VARCHAR(MAX) NULL,
  35. `trans_dest` VARCHAR(MAX) NULL )

我收到以下错误消息:

1064-您的sql语法有错误;请查看与您的mysql服务器版本对应的手册,以了解使用接近'max)null的正确语法,

  1. `time` VARCHAR(MAX) NULL,
  2. `timezone` VARCHAR(MAX) NULL,
  3. `user_id` INT' at line 5

这里有一些关于我工作的信息
服务器
服务器类型:mysql
服务器版本:8.0.18
phpmyadmin:4.9.2。
我花了一天时间试图解决这个问题,现在我想是时候寻求帮助了。我想知道是否有人能告诉我我做错了什么?

kx7yvsdv

kx7yvsdv1#

世上没有 VARCHAR(MAX) 在mysql中。您确实需要指定一个实际值。实际限制不是在列本身上设置的,而是在行上设置的,不应超过64 kb。
你有很多 VARCHAR 列,所以这个限制在这里很重要。不要盲目地在所有列上设置一个高值;相反,您应该根据每个列存储的实际值来调整它的大小。
另外,请考虑使用适当的数据类型,而不是到处使用字符串。有些字符串列似乎是日期。对于这些,请使用数据类型之类的相关日期( DATE , DATETIME , TIMESTAMP 或者 TIME ).

相关问题