ВОПРОС Как создать таблицу MySQL таким образом, чтобы значение поля по умолчанию было выходом функции.
Можно ли это сделать без триггера вставки?
ОБЩАЯ ИНФОРМАЦИЯ: Некоторые объекты и группы, к которым они принадлежат, должны наблюдаться ежедневно.
Для этого я создал следующую таблицу MySQL:
CREATE TABLE entity (
entity_id VARCHAR(10) NOT NULL,
group_id VARCHAR(10) NOT NULL,
first_seen DATE NOT NULL,
last_seen DATE NOT NULL,
PRIMARY KEY (entity_id,group_id)
)
Сценарий ежедневно анализирует журналы сущностей и записывает их в entity_raw, затем я хочу обновить таблицы, используя
REPLACE INTO entity (entity_id,group_id,last_seen)
SELECT entity_id,group_id,record_date
FROM entity_raw
WHERE (record_date = DATE(DATE_SUB(NOW(),INTERVAL 1 DAY))
Естественно, я получаю сообщение об ошибке при добавлении новых пар (entity_id, group_id), поскольку first_seen не может быть NULL ...
Можно ли это сделать одним оператором, если не использовать триггер (мне они не нравятся, слишком удивительно для обслуживания)
или мне нужно сначала выбрать для существования, а затем вставить / обновить соответственно?