postgresql - 如何设置创建某些行的日期?我试图在 PostgreSQL 中只使用触发器和函数
问题描述
我有一个名为recipes的表,我的目标是每次插入新行时,该新行的created_at列会自动接收值NOW()。
我设法在创建这个函数和触发器的列updated_at上做这样的事情,它工作正常。
CREATE OR REPLACE FUNCTION public.trigger_set_timestamp()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_at = NOW();
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER set_timestamp
BEFORE UPDATE ON recipes
FOR EACH ROW
EXECUTE PROCEDURE trigger_set_timestamp();
但是在我更改代码以设置created_at之后,没有任何反应,并且 Postgres 没有指出任何错误。
CREATE OR REPLACE FUNCTION public.trigger_set_timestamp_created_at()
RETURNS trigger AS $$
BEGIN
NEW.created_at = NOW();
RETURN NEW;
END;
$$ LANGUAGE plpgsql;
CREATE TRIGGER set_timestamp_created_at
AFTER INSERT ON recipes
FOR EACH ROW
EXECUTE PROCEDURE trigger_set_timestamp_created_at();
解决方案
推荐阅读
- python-3.x - 使用完整数据集时,K 折交叉验证给出了奇怪的结果
- graphics - 如何找到从旋转椭圆中心到它的 4 个角度 4 extermaties
- reactjs - 更改url时如何防止react-route重新渲染整个应用程序
- python - 使用样本权重训练 xgboost (0.7) 分类器
- python - Jupyter Notebook 中的 %debug - 访问丢失的回溯帧
- tensorflow - tensorforest 算法中通过 epochs 更新的参数是什么?
- react-native - 这个函数应该返回第二个等待的值。目前它返回第一个等待的值
- algorithm - Bachmann-Landau 符号家族
- javascript - .Net Core Web API 不接受 json 字符串字段值
- python - .NET Core 2.0 和 Angular 初始应用程序构建失败 - 找不到 python,后跟 JavaScript 运行时错误