如何在将 select 更新为另一个 table 的同时更新时间戳列

How to update a timestamp column whilst making a select to another table

我有 2 个 table:

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 中 select 一行并更新相应的 last_login 时间戳t1 id 在 t1 table.

是否可以在单个查询中执行此操作?

您不能在同一个 SQL 操作中同时使用 UPDATESELECT。不过你有一些选择:

  1. 在应用程序级别执行 - 更新登录,然后 select 数据
  2. 将其作为一个 SPROC / 函数执行,您可以在其中按顺序执行两个操作并在需要时可能回滚
  3. 使用触发器独立更新登录
  4. 合并表格以简化事情,如果它们总是 1 对 1 的话