GBase 8s数据库-更新超级表的行:

当您对超级表构造 UPDATE 语句时,您可更新该超级表中的所有列,以及从该超级表继 承的子表的列。例如,下列语句更新来自 employee 和sales_rep 表的行,它们是超级 表 person 的子表:

UPDATE person SET salary=65000 WHERE address.state = 'CA';

然而,对超级表的更新不允许您更新不在该超级表内的子表的列。例如,在前面的更新语句中,您不可更新 sales_rep 表的 region_num 列,因为region_num 列未出现在 employee 表 中。 当您对超级表执行更新时,请注意该更新的作用域。例如,对 person 表的 UPDATE 语句未包括 WHERE 子句来限定要更新的行,该语句修改person、employee 和 sales_rep 表的所有行。 要限定为仅对超级表的行更新,您必须在 UPDATE 语句中使用 ONLY 关键字。例如,下 列语句仅更新 person 表的行:

UPDATE ONLY(person) SET address = ROW('14 Jackson St', 'Berkeley', address.state, address.zip) WHERE name = 'Sallie, A.';

重要:当您更新超级表的行时,请小心使用,因为对超级表的更新的作用域包括该超级表及其 所有子表。