Я смотрю на некоторые вопросы практики
Assume that you've just created this table:
CREATE TABLE timestamptest (
ts1 TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
i INT
);
When you look at its structure, you will notice that the TIMESTAMP column is declared NOT NULL. What happens if you insert these records:
mysql> INSERT INTO timestamptest SET ts1=NULL, i=10;
mysql> INSERT INTO timestamptest SET ts1=0, i=11;
mysql> INSERT INTO timestamptest SET ts1='', i=12;
ответ
Only the first statement succeeds, and the TIMESTAMP column is set to the current date and time. The other two statements give an error:
mysql> INSERT INTO timestamptest SET ts1=NULL, i=10;
Query OK, 1 row affected (0.00 sec)
mysql> INSERT INTO timestamptest SET ts1=0, i=11;
ERROR 1292 (22007): Incorrect datetime value: '0' for column 'ts1' at row 1
mysql> INSERT INTO timestamptest SET ts1='', i=12;
ERROR 1292 (22007): Incorrect datetime value: '' for column 'ts1' at row 1
но когда я попробовал, вставка ts1 = 0 работает, он вставляет временную метку с нулевым значением ... ответ неправильный?