Как устранить синтаксическую ошибку в SQL-запросе - PullRequest
0 голосов
/ 17 декабря 2018

Я получаю ошибку для запроса:

ALTER TABLE `cms_users` ADD `show_on_web` TINYINT(4)  NOT NULL  DEFAULT '1';

И я получаю ошибку:

У вас есть ошибка в синтаксисе SQL;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с 'NOT NULL DEFAULT' 1 '' в строке 1

Я не уверен, что это за ошибка.

Для проверки запроса - http://sqlfiddle.com

Ответы [ 3 ]

0 голосов
/ 17 декабря 2018

После публикации fa06 вы пропускаете COLUMN после ADD.

. Кроме того, в предложении DEFAULT имеется несоответствие типов (в кавычках подразумевается VARCHAR, а не TINYINT).

Попробуйте это:

ALTER TABLE `cms_users` ADD COLUMN `show_on_web` TINYINT(4)  NOT NULL  DEFAULT 1;

PS: Почему-то SQLFiddle у меня сегодня не работает.Тем не менее, я просто попробовал следующее:

CREATE TABLE cms_users (
    id INT
    );

ALTER TABLE `cms_users` ADD COLUMN `show_on_web` TINYINT(4) NOT NULL DEFAULT 1;

на https://paiza.io/en/languages/mysql, и это не показывает ошибки компиляции.

0 голосов
/ 17 декабря 2018

Измените его на:

ALTER TABLE `cms_users` ADD COLUMN `show_on_web` TINYINT(4)  NOT NULL  DEFAULT 1;

Я добавил слово COLUMN и удалил кавычки со значением по умолчанию.

Поскольку это TINYINT - Integer, вам нужно использовать 1 вместо '1' .Потому что «1» - это строка.

0 голосов
/ 17 декабря 2018

Вы можете попробовать ниже - вам нужно добавить столбец, и по умолчанию будет 1, а не «1», потому что ваш тип данных - tinyint

ALTER TABLE `cms_users` 
ADD column `show_on_web` TINYINT(4)  NOT NULL DEFAULT 1
...