日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

從修改的行中返回數據

本文介紹了如何從修改的行中返回數據。

簡介

有時在修改行的操作過程中獲取數據很有用。INSERTUPDATEDELETE命令都有一個支持這個的可選的 RETURNING子句。使用RETURNING 可以避免執行額外的數據庫查詢來收集數據,并且在否則難以可靠地識別修改的行時尤其有用。

所允許的RETURNING子句的內容與SELECT命令的輸出列表相同。它可以包含命令的目標表的列名, 或者包含使用這些列的值表達式。一個常見的簡寫是RETURNING, 它按順序選擇目標表的所有列。

INSERT中,可用于RETURNING的數據是插入的行。 這在瑣碎的插入中并不是很有用,因為它只會重復客戶端提供的數據。 但依賴于計算出的默認值時可以非常方便。例如,當使用 serial列來提供唯一標識符時, RETURNING可以返回分配給新行的 ID:

    CREATE TABLE users (firstname text, lastname text, id serial primary key);

    INSERT INTO users (firstname, lastname) VALUES ('Joe', 'Cool') RETURNING id;

RETURNING子句對于INSERT ... SELECT也非常有用。

UPDATE中,可用于RETURNING的數據是被修改行的新內容。 例如:

    UPDATE products SET price = price * 1.10
      WHERE price <= 99.99
      RETURNING name, price AS new_price;

DELETE中,可用于RETURNING的數據是刪除行的內容。例如:

    DELETE FROM products
      WHERE obsoletion_date = 'today'
      RETURNING *;

如果目標表上有觸發器,可用于RETURNING 的數據是被觸發器修改的行。因此,檢查由觸發器計算的列是 RETURNING的另一個常見用例。