Hi guyz, I am learning about optional parameter regarding fields for ondelete parameter. These are the predefined values: "cascade", "set null", "restrict", "no action", "set default" Can anyone tell me when these values are set at what scenario and give me example for each predefined values in detail. For eg: "restrict" - 'journal_id': fields.many2one('account.analytic.journal', 'Analytic Journal', required=True, ondelete='restrict', select=True), - journal values must not be changed.
Foreign Key constraint on delete records in your object. These parameters define constraint on PostgreSQL level.
Restricting and cascading deletes are the two most common options.
RESTRICT prevents deletion of a referenced row.
NO ACTION means that if any referencing rows still exist when the constraint is checked, an error is raised; this is the default behavior if you do not specify anything. (The essential difference between these two choices is that
NO ACTION allows the check to be deferred until later in the transaction, whereas
RESTRICT does not.)
CASCADE specifies that when a referenced row is deleted, row(s) referencing it should be automatically deleted as well. There are two other options:
SET NULL and
SET DEFAULT. These cause the referencing columns to be set to nulls or default values, respectively, when the referenced row is deleted. Note that these do not excuse you from observing any constraints. For example, if an action specifies
SET DEFAULT but the default value would not satisfy the foreign key, the operation will fail.
Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!
About This Community
|Asked: 5/31/13, 4:08 AM|
|Seen: 8738 times|
|Last updated: 6/27/16, 1:04 AM|