2015-07-10 4 views
0

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

Пользователи Таблица:

CREATE TABLE `Users` (
    `userId` int(11) unsigned NOT NULL AUTO_INCREMENT, 
    `fullName` varchar(50) DEFAULT NULL, 
    `firstName` varchar(25) NOT NULL DEFAULT '', 
    `lastName` varchar(25) NOT NULL DEFAULT '', 
    `address` varchar(50) NOT NULL DEFAULT '', 
    `city` varchar(25) DEFAULT NULL, 
    `state` char(2) DEFAULT NULL, 
    `zipCode` varchar(25) DEFAULT NULL, 
    `email` varchar(50) NOT NULL DEFAULT '', 
    `cellPhone` varchar(15) DEFAULT NULL, 
    `birthDate` date NOT NULL, 
    `creditCard` varchar(250) NOT NULL DEFAULT '', 
    `subscriptionStarted` date NOT NULL, 
    `subscriptionEnded` date NOT NULL, 
    `basicPlan` tinyint(1) DEFAULT NULL, 
    `standardPlan` tinyint(1) DEFAULT NULL, 
    `premiumPlan` tinyint(1) DEFAULT NULL, 
    `staff` tinyint(1) DEFAULT NULL, 
    `admin` tinyint(1) DEFAULT NULL, 
    `systemAdmin` tinyint(1) DEFAULT NULL, 
    `edited` datetime DEFAULT NULL, 
    `created` datetime DEFAULT NULL, 
    PRIMARY KEY (`userId`) 
) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=latin1; 

теперь я добавил этот дополнительный запрос, чтобы сделать мой создал поле получить текущий DateTime при создании новой записи.

ALTER TABLE Users 
ALTER COLUMN created SET DEFAULT CURRENT_TIMESTAMP 

Проблема заключается в том, что я получаю следующее сообщение об ошибке при запуске альтер таблицы запроса

У Вас есть ошибка в вашем SQL синтаксиса; в руководстве, соответствует версии сервера MySQL для корректного синтаксиса использовать вблизи «CURRENT_TIMESTAMP» в строке 2

ответ

1

Ваш синтаксис немного выключен, я думаю, вы должны указать столбец для изменения:

ALTER TABLE Users CHANGE created created TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP 

См. Этот пример SQL Fiddle для примера.

+0

Я получаю сообщение об ошибке: Неверное значение по умолчанию для 'created' – user3862830

+0

@ user3862830 Я предполагаю, что вы, возможно, используете версию сервера MySQL <5.6; Если это так, попробуйте изменить дату и время на отметку времени, поскольку более ранние версии не инициализировали поля datetime. – jpw

+1

никогда не работает сейчас. Спасибо за помощь – user3862830