On Jan 3, 2008 3:53 PM, Martijn van Oosterhout <kleptog@svana.org> wrote:
On Thu, Jan 03, 2008 at 01:08:47PM +0530, Gokulakannan Somasundaram wrote:
> Can you please explain, any specific use-case where DDLs are necessary > within a transaction?
I don't think they are ever necessary, they're just very very nice. For example:
- You want a new column to appear populated on a table atomically. You do a BEGIN; add column; update set column=foo; add foreign key; COMMIT - Installation of external modules can be done atomically, so you don't end up with half installed contrib modules. - Principle of Least Surprise. Automatic commit for any reason seems wrong. - Temporarily disabling triggers/indexes/constraints, if the system aborts/crashes, the triggers are reinstated automatically. - Just general niceity of being able to test schema changes without immediatly changing the system.