# 1064 - У вас есть ошибка в синтаксисе SQL: MAX NULL проблема - PullRequest
0 голосов
/ 29 мая 2020

Я новичок в 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. WAMPServer
  2. Тип сервера: MySQL
  3. Версия сервера: 8.0.18
  4. phpMyAdmin: 4.9. 2.

Я потратил день, пытаясь решить эту проблему, и теперь думаю, что пришло время попросить о помощи. Мне было интересно, может ли кто-нибудь сказать мне, что я делаю не так?

1 Ответ

2 голосов
/ 29 мая 2020

В MySQL нет такого понятия, как VARCHAR(MAX). Вам нужно указать фактическое значение. Фактический предел устанавливается не для самого столбца, а для строки, которая не должна превышать 64 КБ.

У вас много VARCHAR столбцов, поэтому этот предел будет иметь значение здесь. Не устанавливайте вслепую высокие значения для всех столбцов; вместо этого вам следует настроить размер каждого столбца в соответствии с фактическим значением, которое он будет хранить.

Кроме того, рассмотрите возможность использования везде правильных типов данных, а не строк. Некоторые из ваших строковых столбцов кажутся датами. Для них используйте соответствующий тип данных, похожий на дату (DATE, DATETIME, TIMESTAMP или TIME).

...