Постоянно ли значение unix_timestamp в пределах одного (пусть и огромного) insert'а?
Я провел тест:
таблица
CREATE TABLE `test_UNIX_TIMESTAMP` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`datefrom` INT(11) NULL DEFAULT NULL,
PRIMARY KEY (`id`)
)
Далее insert вида:
insert into test_UNIX_TIMESTAMP (datefrom) values
(UNIX_TIMESTAMP())
,(UNIX_TIMESTAMP())
,(UNIX_TIMESTAMP())
....много много
,(UNIX_TIMESTAMP());
результат: Affected rows: 106 400 Найденные строки: 0 Предупреждения: 0 Длительность 1 query: 20,062 sec.
20 секунд, так как сервер удаленный.
Затем:
select distinct(datefrom) from test_UNIX_TIMESTAMP;
вернул мне всего лишь
один результат.
Я решил, что 100к мало, обнулил таблицу:
Affected rows: 1 170 400 Найденные строки: 0 Предупреждения: 0 Длительность 1 query: 00:03:51
Далее по новой:
select distinct(datefrom) from test_UNIX_TIMESTAMP;
И всего один результат.
Судя по моим тестам UNIX_TIMESTAMP фиксирован. Но в то же время сервер подождал пока получит пакет, и исполнил его и сервер весьма мощный. Поэтому вставкой 1 миллиона инсертов фикс значения UNIX_TIMESTAMP не доказать.
Кто может привести некие доводы на основе документации или выдержек (пусть с того же stackoverflow) что UNIX_TIMESTAMP вычисляется всего 1 раз для инсерта и далее просто дублируется.