问题如何创建MySQL表,以便字段的默认值是函数的输出。MYSQL:如何创建一个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 ...
这可以在一个语句中完成,格格(我不喜欢他们,太令人惊讶的维护)
或我需要先选择存在,然后插入/更新相应?
+1用于回答我的问题..幸运的是有另一种方法来解决潜在的问题 – lexu 2009-07-17 10:00:57