Использование MySQL 5.6.40
Это определение таблицы:
CREATE TABLE IF NOT EXISTS `updated_tables` (
`table_name` VARCHAR(50) NOT NULL,
`updated_at` TIMESTAMP(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE CURRENT_TIMESTAMP(6),
PRIMARY KEY (`table_name`),
UNIQUE INDEX `table_name_UNIQUE` (`table_name` ASC))
ENGINE = InnoDB;
Это запрос (сгенерированный Sequalize):
INSERT INTO `updated_tables` (`table_name`,`updated_at`) VALUES ('workdamnit',NULL) ON DUPLICATE KEY UPDATE `table_name`=VALUES(`table_name`), `updated_at`=VALUES(`updated_at`);
Упрощенная форма того же запроса:
INSERT INTO `updated_tables` (`table_name`,`updated_at`) VALUES ('workdamnit',NULL)
И он производит следующую запись в таблице:
table_name: workdamnit
updated_at: 2018-07-05 14: 27: 17.142494
Теперь к вопросу.
Использование MySQL 5.6.39-log на AWS RDS
выдает эту ошибку:
Код ошибки: 1048. Столбец updated_at не может быть пустым
Это потому, что версии MySQL немного отличаются, или это связано с RDS?