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

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

我是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

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

kx7yvsdv

kx7yvsdv1#

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

相关问题