15.5.3. Determining Actions
If only the <after>
block is specified,
the rows specified in the <after>
block
are inserted in the table(s). If both the
<before>
and
<after>
blocks are specified, then rows
specified in the <after>
block for which
there are no corresponding rows in the
<before>
block are inserted in the
table(s).
In an update operation, the rows specified in the
<before>
block refer to existing rows in
the database. The corresponding rows in the
<after>
block reflect what the user wants
in the database. A row update operation is performed if there is a row
in both the <before>
and
<after>
sections with the same set of
values for the attributes that uniquely identify a row in a
table. Rows specified in the <before>
block must be valid in the database for the updategram to successfully
update the rows.
In a delete operation, if only the
<before>
block is specified in the update
gram, the rows specified in the <before>
block are deleted from the table(s). If both the
<before>
and
<after>
blocks are specified, the rows
for which there are no corresponding rows in the
<after>
block are deleted from the
table(s).