#1064 - 您的 SQL 语法有误:MAX NULL 问题
#1064 - You have an error in your SQL syntax: MAX NULL problem
我是 MySQL 的新手,运行 在我正在进行的学习项目中遇到了一些麻烦。
每当我尝试创建 table
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 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MAX) NULL,
`time` VARCHAR(MAX) NULL,
`timezone` VARCHAR(MAX) NULL,
`user_id` INT' at line 5
这是我正在使用的一些信息
- WAMPServer
- 服务器类型:MySQL
- 服务器版本:8.0.18
- phpMyAdmin: 4.9.2.
我花了一天的时间试图解决这个问题,现在我想是时候询问了 help.I 想知道是否有人可以告诉我我做错了什么?
MySQL中没有VARCHAR(MAX)
这样的东西。您确实需要指定一个实际值。实际限制不是在列本身上设置的,而是在行上设置的,不应超过 64 kB。
您有很多 VARCHAR
列,因此此限制在这里很重要。不要盲目地为所有列设置高值;相反,您应该根据它将存储的实际值调整每个列的大小。
另外,请考虑使用正确的数据类型而不是到处使用字符串。您的某些字符串列似乎是日期。对于那些,使用相关的类似日期的数据类型(DATE
、DATETIME
、TIMESTAMP
或 TIME
)。
我是 MySQL 的新手,运行 在我正在进行的学习项目中遇到了一些麻烦。
每当我尝试创建 table
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 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'MAX) NULL,
`time` VARCHAR(MAX) NULL,
`timezone` VARCHAR(MAX) NULL,
`user_id` INT' at line 5
这是我正在使用的一些信息
- WAMPServer
- 服务器类型:MySQL
- 服务器版本:8.0.18
- phpMyAdmin: 4.9.2.
我花了一天的时间试图解决这个问题,现在我想是时候询问了 help.I 想知道是否有人可以告诉我我做错了什么?
MySQL中没有VARCHAR(MAX)
这样的东西。您确实需要指定一个实际值。实际限制不是在列本身上设置的,而是在行上设置的,不应超过 64 kB。
您有很多 VARCHAR
列,因此此限制在这里很重要。不要盲目地为所有列设置高值;相反,您应该根据它将存储的实际值调整每个列的大小。
另外,请考虑使用正确的数据类型而不是到处使用字符串。您的某些字符串列似乎是日期。对于那些,使用相关的类似日期的数据类型(DATE
、DATETIME
、TIMESTAMP
或 TIME
)。