Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
地址:new&;:当更新PL/SQL中的一行时,旧前缀在其他列上起作用?_Sql_Oracle_Plsql - Fatal编程技术网

地址:new&;:当更新PL/SQL中的一行时,旧前缀在其他列上起作用?

地址:new&;:当更新PL/SQL中的一行时,旧前缀在其他列上起作用?,sql,oracle,plsql,Sql,Oracle,Plsql,具有两个属性的表,A和B,以及更新属性B后将触发的行级触发器。我的问题是,我可以使用:new或:old前缀作为属性A?如果是,我应该使用哪一个?谢谢。您可以使用任何适合您想要做的事情: :old.a是更新前的值 :new.a是更新后的值 如中所述: 对于更新触发器,OLD包含旧值,NEW包含新值 旧的和新的都是记录。它们不仅具有更改的值,而且具有整个记录。在测试表上尝试一下。这是一个简单的测试设置:-)边做边学也有助于它更好地“坚持”下去。边做边记笔记,并将注释后的代码保存在文件夹中以备将来参

具有两个属性的表,
A
B
,以及更新属性
B
后将触发的行级触发器。我的问题是,我可以使用
:new
:old
前缀作为属性
A
?如果是,我应该使用哪一个?谢谢。

您可以使用任何适合您想要做的事情:

  • :old.a是更新前的值
  • :new.a是更新后的值
如中所述:

对于更新触发器,OLD包含旧值,NEW包含新值


旧的和新的都是记录。它们不仅具有更改的值,而且具有整个记录。

在测试表上尝试一下。这是一个简单的测试设置:-)边做边学也有助于它更好地“坚持”下去。边做边记笔记,并将注释后的代码保存在文件夹中以备将来参考。grasshopper,享受学习过程,尽可能地传授知识。让旅程像目的地一样愉快。顺便说一句,表格有列;)@Gary_W我明天肯定会在我大学的实验室里这样做。事实上,我在Linux上,在这个平台上安装oracle server是一件痛苦的事情。我没有足够的内存来双启动窗口或在虚拟环境中运行它。所以我能做的就是编写代码并在第二天进行测试。我理解:new和:old之间的区别。然而,在我的例子中,在对B进行更新之后,属性A保持不变,这使得:new&:old的使用变得毫无意义。如果允许我使用它们,我猜:old更合适。我只想确认一下这个问题。感谢您的回答。如果值不变,则两者都包含相同的值。因此,您的意思是,即使我将单个属性更新到某一行,该行的所有值都将被视为:新值,尽管它们保持不变?确实,如果只给出更改后的值,而将其显示为记录,则有点不合逻辑