PowerDesigner ships pre-defined template items for each pre-defined trigger template defined in the supported DBMS. The Rebuild Triggers function uses both pre-defined and user-defined trigger templates to automatically create triggers for selected tables.
In the pre-defined trigger templates, each pre-defined template item corresponds to a referential integrity constraint. Although a pre-defined template item is defined in a trigger template, it is only generated in a trigger script if it implements the trigger referential integrity defined for a reference.
Template items have the following generation conditions:
| Template item is listed in... | Template item is... | 
|---|---|
| Template Items tab of trigger property sheet | Available for generation | 
| Template Items tab of trigger template property sheet | Generated | 
You can modify the code for these pre-defined template items, but they cannot be deleted or renamed.
The PowerDesigner pre-defined template items that are available depend on the current DBMS.
The template items below implement referential integrity in insert trigger templates.
| Template item | Integrity constraint | Description | 
|---|---|---|
| DeclInsertChildParentExist InsertChildParentExist | Mandatory parent | Parent must exist when inserting a child | 
| DeclInsertTooManyChildren InsertTooManyChildren | Cannot exceed maximum cardinality constraint | Cannot insert a child if maximum cardinality has been reached | 
| DeclInsertSequenceColumn InsertSequenceColumn | Select value in sequence list for column | Select a value for the column from a list of sequences | 
The template items below implement referential integrity in update trigger templates.
| Template item | Integrity constraint | Description | 
|---|---|---|
| DeclUpdateChildParentExist UpdateChildParentExist | Mandatory parent | Parent must exist when updating a child | 
| DeclUpdateChildChangeParent UpdateChildChangeParent | Change parent not allowed | Cannot modify parent code in child | 
| DeclUpdateParentRestrict UpdateParentRestrict | Restrict on update | Cannot modify parent if child exists | 
| DeclUpdateParentCascade UpdateParentCascade | Cascade on update | Modify parent code in all children | 
| DeclUpdateChangeColumn UpdateChangeColumn | Non-modifiable column | Cannot modify column | 
| DeclUpdateParentSetNull UpdateParentSetNull | Set null on update | Set parent code to null in all children | 
| DeclUpdateParentSetDefault UpdateParentSetDefault | Set default on update | Set parent code to default in all children | 
| DeclUpdateTooManyChildren UpdateTooManyChildren | Cannot exceed maximum cardinality constraint | Cannot update a child if maximum cardinality has been reached | 
The template items below implement referential integrity in delete trigger templates.
| Template item | Integrity constraint | Description | 
|---|---|---|
| DeclDeleteParentRestrict DeleteParentRestrict | Restrict on delete | Cannot delete parent if child exists | 
| DeclDeleteParentCascade DeleteParentCascade | Cascade on delete | Delete parent code in all children | 
| DeclDeleteParentSetNull DeleteParentSetNull | Set null on delete | Delete in parent sets child to null | 
| DeclDeleteParentSetDefault DeleteParentSetDefault | Set default on delete | Delete in parent sets child to default |