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);

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

0

Решение

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

$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";
0

Другие решения

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

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

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

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

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

0

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

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

-1