Является ли MYSQL UNIX_TIMESTAMP ('02 / 05/2019 ') недетерминированным? - PullRequest
2 голосов
/ 31 мая 2019

Согласно определению, данному здесь: https://dev.mysql.com/doc/refman/5.7/en/create-table-generated-columns.html

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

Насколько я понимаю, unix_timestamp () всегда будет давать один и тот же результат для одного и того же ввода.

Однако, когда я пытаюсь создать сгенерированный столбец, используя UNIX_TIMESTAMP (эпохальное время), он выдает ошибку как запрещенную функцию.

ALTER TABLE `test_table` 
ADD COLUMN epoch_updated_at BIGINT(15)
AS  (UNIX_TIMESTAMP(updated_at)) STORED

enter image description here

Обновление: я обнаружил, что MYSQL считает unix_timestamp недетерминированным в https://dev.mysql.com/doc/refman/8.0/en/replication-rbr-safe-unsafe.html#replication-rbr-safe-unsafe-not. Я не уверен, почему, хотя?

...