MySQL SET DEFAULT возвращает ошибку: запрос пуст

У меня есть существующая таблица MySQL (версия 5.6.12) с именем 'users', и я пытаюсь установить значения по умолчанию для столбца с помощью php (версия 5.4.12), например:

$query = "ALTER TABLE users ALTER username SET DEFAULT NULL";
$result = mysqli_query($query);

Однако это приводит к ошибке SQL (которая приводит к сообщению "запрос пуст"). username - это столбец типа VARCHAR(200).

Использование заключенного в кавычки литерала (такого как 'Джон') для значения по умолчанию приводит к той же самой ошибке. (Просто для удовольствия, хотя я использую MySQL, я также пытался изменить запрос в соответствии с синтаксисом SQL/MS Access или Oracle, но он все еще не работает).

Что я делаю неправильно?

РЕДАКТИРОВАТЬ: проблема решена. Приведенный выше запрос в порядке, и нет ничего плохого.

Я сделал невероятно глупую ошибку и забыл $ знак перед $queryмой код был написан $result = mysqli_query(query);

(Как вы знаете, я программист с многолетним опытом.)

4 ответа

Задача решена. Запрос на самом деле хорошо, и нет ничего плохого.

Я сделал невероятно глупую ошибку и забыл $ знак перед $queryмой код был написан $result = mysqli_query(query);

(Как вы знаете, я программист с многолетним опытом.)

Я использую это для моего сайта

$query = "ALTER TABLE 'users' CHANGE 'username' 'username' VARCHAR( 100 ) NULL DEFAULT NULL";
$result = mysqli_query($query);

Изменить запрос, как показано ниже

$query = "ALTER TABLE users MODIFY Column username VARCHAR(200) NULL DEFAULT NULL";

или же

 $query = "ALTER TABLE users CHANGE Column username username VARCHAR(255) NULL DEFAULT NULL";

В MySQL вы используете заключенные в кавычки [`] литералы, не используйте знак кавычек [']. С другой стороны, каждый механизм DDBB использует свой слегка отличающийся от SQL вариант. Большинство из них в любом случае способны интерпретировать общие подмножества, как описано различными активными стандартами SQL89, SQL92, SQL99... и так далее.

Короче говоря, ваш SQL неверен в том, что MySQL ожидает от него. Вам придется развивать свои навыки SQL на основе проб и ошибок, работая с различными механизмами SQL, пока вы не сможете дать каждому из этих механизмов ожидаемый вариант SQL. Только не сдавайтесь и настаивайте на запросе. Упростите его, запустив более короткие строки, пока не найдете подходящую, а затем уточните ее, добавив меньшие кусочки, пока не достигнете своей цели.

Другие вопросы по тегам