MySQL: есть ли способ автоматически установить поле даты и времени для записи метки времени создания? - PullRequest
4 голосов
/ 11 декабря 2010

Я знаю, что существует тип данных TIMESTAMP, который автоматически обновляется до значения метки времени при обновлении записи, и у меня уже есть такой столбец.

Кроме того, я хотел бы иметь столбец, который автоматически заполняется до NOW () (или CURRENT_TIMESTAMP) и никогда не изменяется, но MySQL DEFAULT не поддерживает вызовы функций.

Пожалуйста, публикуйте только чистые ответы MySQL. Я знаю, как это сделать на уровне приложения.

РЕДАКТИРОВАТЬ: Если нет такой функции - я был бы рад услышать это.

EDIT2: версия MySQL 5.0.32

Ответы [ 2 ]

9 голосов
/ 11 декабря 2010

Используйте триггер, чтобы установить значение по умолчанию.

DELIMITER |

CREATE
    TRIGGER trigger_name BEFORE INSERT ON tbl_name FOR EACH ROW 
BEGIN
    SET NEW.colname = NOW();
END; 

|

Попробуйте это, включая разделитель.

3 голосов
/ 11 декабря 2010

Я хотел бы иметь столбец, который автоматически заполняется до NOW () (или CURRENT_TIMESTAMP) и никогда не изменяется

Говоря, что вы хотите, чтобы он заполнялся *От 1006 * до СЕЙЧАС () звучит так, как будто вы имеете в виду начальную INSERT.Если это так, можете ли вы просто использовать это?Что-то вроде

INSERT INTO table (field1,field2,my_datetime) VALUES (1,'a',NOW())
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...