GBASE南大通用GBase 8s数据库-更新 row 类型

GBase 8s数据库更新 row 类型 :

依赖于该列是命名了的 ROW 类型还是未命名的 ROW 类型,您用于更新 row 类型值的 语法会不同。本部分描述那些差异,还描述如何为 ROW 类型的字段指定 NULL 值。 

更新包含命名了的 row 类型的行

要更新在命名了的 ROW 类型上定义的列,您必须指定所有 ROW 类型的字段。例如,下 列语句仅更新 employee 表中 address 列的 street 和 city字段,但每一 ROW 类型的字段必须 包含一个值(允许 NULL 值): UPDATE employee SET address = ROW('103 California St', San Francisco', address.state, address.zip)::address_t WHERE name = 'zawinul, joe'; 在此示例中,从该行中读取 state 和 zip 字段的值,然后立即重新插入到该行内。仅更 新 address 列的 street 和 city 字段。 当您更新在命名了的 ROW 类型上定义的列的字段时,您必须使用 ROW 构造函数,并将 该行值强制转型为适当的命名了的 ROW 类型。

更新包含未命名的 row 类型的行

要更新在未命名的 ROW 类型上定义的列,您必须指定该 ROW 类型的所有字段。例如, 下列语句仅更新 student 表中 address 列的 street 和 city字段,但 ROW 类型的每一字段都必 须包含一个值(允许 NULL 值): UPDATE student SET s_address = ROW('13 Sunset', 'Fresno', s_address.state, s_address.zip) WHERE s_name = 'henry, john'; 要更新在未命名的 ROW 类型上定义的列的字段,请始终在插入该字段值之前,指定 ROW 构造函数。

为 row 类型的字段指定 Null 值

  row 类型列的字段可包含 NULL 值。当您以 NULL 值插入到 row 类型字段内或更新 row 类型字段时,您必须将该值强制转型为那个字段的数据类型。 下列 UPDATE 语句展示您可以如何为命名了的 row 类型列的特定字段指定 NULL 值: UPDATE employee SET address = ROW(NULL::VARCHAR(20), 'Davis', 'CA', ROW(NULL::CHAR(5), NULL::CHAR(4)))::address_t) WHERE name = 'henry, john'; 下列 UPDATE 语句展示您如何为 student 表的 address 列的 street 和 zip 字段指定 NULL 值。 UPDATE student SET address = ROW(NULL::VARCHAR(20), address.city, address.state, NULL::VARCHAR(9)) WHERE s_name = 'henry, john'; 重要: 您不可为 row 类型列指定 NULL 值。您仅可为 row 类型的个别的字段指定 NULL值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值