Мне нужно добавить несколько столбцов в таблицу, но расположить столбцы после столбца с именем lastname
.
Я пробовал это:
ALTER TABLE `users` ADD COLUMN
(
`count` smallint(6) NOT NULL,
`log` varchar(12) NOT NULL,
`status` int(10) unsigned NOT NULL
)
AFTER `lastname`;
Я получаю эту ошибку:
У вас есть ошибка в вашем синтаксисе SQL; проверьте руководство, соответствующее вашей версии сервера MySQL, чтобы найти правильный синтаксис для использования рядом с ') AFTER
lastname
' в строке 7
Как я могу использовать ПОСЛЕ в запросе, как этот?
ALTER TABLE
синтаксис немного варьируется между диалектами.Ответы:
Попробуй это
проверьте синтаксис
источник
ADD
,ALTER
,DROP
иCHANGE
положения разрешается в одномALTER TABLE
заявлении, разделенных запятыми. Это расширение MySQL к стандартному SQL, которое допускает только одно из каждого предложения на оператор ALTER TABLE.Если вы хотите добавить один столбец после определенного поля, тогда должен работать следующий запрос MySQL:
Если вы хотите добавить несколько столбцов, вам нужно использовать команду «ДОБАВИТЬ» каждый раз для столбца. Вот запрос MySQL для этого:
Указать на заметку
Во втором методе последний
ADD COLUMN
столбец должен фактически быть первым столбцом, который вы хотите добавить в таблицу.Например: если вы хотите добавить
count
,log
,status
в точном порядке послеlastname
, то синтаксис будет фактически:источник
count
,log
,status
илиcount
,status
,log
?Вы не можете упомянуть несколько имен столбцов, используя запятые
ADD COLUMN
. Вы должны упоминатьADD COLUMN
каждый раз, когда вы определяете новый столбец.источник
Это правильно:
источник
Вы можете сделать это с этим, отлично работает для меня.
источник
Одна из возможностей - не переупорядочивать столбцы в таблице и просто изменить их, добавив столбцы. Затем создайте представление, столбцы которого находятся в нужном вам порядке, предполагая, что этот порядок действительно важен. Представление может быть легко изменено, чтобы отразить любой порядок, который вы хотите. Поскольку я не могу себе представить, что порядок будет важен для программных приложений, представление должно быть достаточно для тех ручных запросов, где это может быть важно.
источник
Это даст хорошие результаты.
источник
Это прекрасно работает для меня:
источник
Решение, которое работало для меня со значением по умолчанию 0, заключается в следующем
источник
В качестве альтернативы:
Поместите их в нужном вам порядке, упрощая оператор AFTER.
источник