2015-05-31 2 views
4

Я пытаюсь добавить два столбца DATETIME в таблицу User_Accounts.Невозможно добавить столбцы DATETIME в таблицу MySQL

создать столбцы в MySQL верстаке так: DATETIME (6)

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

+0

Я вижу, как добавление столбца «не null» без значения по умолчанию завершится неудачно, если в таблице уже есть данные, но я ожидал бы другого сообщения об ошибке. Тем не менее, вы можете попробовать дать ему значение по умолчанию. Я думаю, что создание времени и времени обновления может быть автоматически введено MySQL. -edit- Да, см. [автоматическая инициализация временных меток] (http://dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html) (Это относится к отметкам времени, а не к дате времени). – GolezTrol

+0

добавил полный журнал ошибок – credo56

ответ

6

Убрать этот спецификатор размера (6) с вашего заявления ALTER.

ALTER TABLE `Chessmates`.`User_Accounts` 
    CHANGE COLUMN `Country` `Country` TEXT(25) NOT NULL , 
    ADD COLUMN `created_at` DATETIME NOT NULL AFTER `salt`, 
    ADD COLUMN `updated_at` DATETIME NULL DEFAULT NULL AFTER `created_at` 
+1

Это сработало, но почему? MySQL workbench предоставляет DATETIME() как тип данных, а не DATETIME. – credo56

+0

Для получения дополнительной информации проверьте документацию 'MySQL' http://dev.mysql.com/doc/refman/5.6/en/datetime.html. – Rahul

+1

DATETIME (6), похоже, работал для меня. Он доступен только в MySQL 5.7 и более поздних версиях. Число внутри скобок представляет собой количество десятичных знаков, которое могут использовать дробные секунды (микросекунды). DATETIME например 2016-06-05 02:07:48 DATETIME (6) eg 2016-06-05 02: 07: 48.123456 –

Смежные вопросы