gpt4 book ai didi

postgresql - postgresql中ROWTYPE、TYPE、RECORD的区别?

转载 作者:行者123 更新时间:2023-11-29 11:15:39 25 4
gpt4 key购买 nike

下面的声明有什么用,我们将在哪里使用这些类型的声明?

myrow tablename%ROWTYPE;
myfield tablename.columnname%TYPE;
arow RECORD;

最佳答案

来自 PostgreSQL's documentation :

  • TYPE 提供变量或表列的数据类型。您可以使用它来声明将保存数据库值的变量。例如,假设您的 users 表中有一个名为 user_id 的列。要声明与 users.user_id 具有相同数据类型的变量,您可以编写:user_id users.user_id%TYPE;

  • ROWTYPE:复合类型的变量称为行变量(或行型变量)。这样的变量可以保存整行 SELECTFOR 查询结果,只要该查询的列集与声明的变量类型相匹配。使用常用的点表示法访问行值的各个字段,例如 rowvar.field

  • RECORD:记录变量类似于行型变量,但它们没有预定义的结构。它们采用在 SELECTFOR 命令期间分配给它们的行的实际行结构。记录变量的子结构在每次分配给它时都会发生变化。这样做的结果是,在第一次分配记录变量之前,它没有子结构,任何访问其中字段的尝试都会导致运行时错误。

请参阅链接以获取更深入的示例。

关于postgresql - postgresql中ROWTYPE、TYPE、RECORD的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34758730/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com