Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (中文) » SQL Anywhere 服务器 - SQL 的用法 » 创建数据库 » 使用数据库对象 » 使用计算列

 

插入和更新计算列

有关计算列值插入与更新的注意事项包括以下几项:

  • 直接插入和更新   不应使用 INSERT 或 UPDATE 语句在计算列中放入值,因为这些值不能反映所需的计算。此外,在计算列中手工插入或更新的数据在以后重新计算列时可能会发生变化。

  • 列依赖性   强烈建议您不要使用触发器设置计算列的定义中引用的列值(例如,将 NULL 值更改为非 NULL 值),因为这会导致计算列的值不反映所需的计算。

  • 列出列名   您必须始终在 INSERT 语句中显式指定具有计算列的表的列名。

  • 触发器   如果对计算列定义触发器,任何影响该列的 INSERT 或 UPDATE 语句都将触发触发器。

虽然可以使用 INSERT、UPDATE 或 LOAD TABLE 语句在计算列中插入值,但既不建议使用该功能,也不需要使用该功能。

LOAD TABLE 语句允许对计算列进行可选 计算。加载操作期间取消计算会使复杂的卸载/重装序列执行得更快。当计算列的值必须保持不变的情况下,这样做也很有用,即使 COMPUTE 表达式引用不确定值(如 CURRENT TIMESTAMP)。

避免更改触发器中相关列的值,因为这会导致计算列的值与列定义不一致。

如果计算列 x 依赖于已声明非 NULL 的列 y,则如果尝试将 y 设置为 NULL,将在触发器触发之前被拒绝,并生成错误消息。