質問フィールドのデフォルト値が関数の出力になるように、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))
first_seen が NULL でない可能性があるため、当然、新しい (entity_id,group_id) ペアを挿入するとエラーが発生します...
トリガーを使用せずに、これを1つのステートメントで実行できますか(私はそれらが嫌いです。メンテナンスにはあまりにも驚くべきことです)
または、最初に存在を選択してから、それに応じて挿入/更新する必要がありますか?