【发布时间】:2021-02-05 15:35:51
【问题描述】:
我有 2 张桌子:
CREATE TABLE IF NOT EXISTS t1
(
id UUID NOT NULL,
last_login TIMESTAMP,
PRIMARY KEY (id)
);
CREATE TABLE IF NOT EXISTS t2
(
id UUID NOT NULL,
t1_id UUID NOT NULL,
PRIMARY KEY (id),
CONSTRAINT ids
FOREIGN KEY (t1_id)
REFERENCES t1 (id)
ON DELETE CASCADE
ON UPDATE NO ACTION
);
我想从t2中选择一行并更新t1表中对应t1 id的last_login时间戳。 p>
是否可以在单个查询中执行此操作?
【问题讨论】:
-
您需要在应用程序级别执行此操作。我认为任何数据库都不支持基于
select查询的“触发器”。 -
SELECT 语句无法更新数据。但是,听起来您想要一个 AFTER LOGIN 触发器,这就是我在 Oracle 中实现它的方式。显然 Postgresql 不支持登录触发器,但有类似的东西 - see this question and its answers
标签: sql database postgresql jooq