From: | "Dawid Kuroczko" <qnex42(at)gmail(dot)com> |
---|---|
To: | "Jasbinder Singh Bali" <jsbali(at)gmail(dot)com> |
Cc: | pgsql-general(at)postgresql(dot)org |
Subject: | Re: Transactional DDL |
Date: | 2007-06-02 16:31:19 |
Message-ID: | 758d5e7f0706020931i3aaadb35h225fbc274ef7b878@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On 6/2/07, Jasbinder Singh Bali <jsbali(at)gmail(dot)com> wrote:
> But its said that transactions in any RDBMS follow ACID properties.
> So if i put a create table and an Insert statement in the same begin end
> block as one single transactioin, won't both create and insert follow acid
> property, being in one single trasaction, and either both get committed or
> none, talking about oracle lets say
Actually, Oracle inserts implicit COMMIT after each DDL.
So, if you have:
BEGIN;
INSERT INTO foo (bar) VALUES (1);
CREATE INDEX foo_bar ON foo (bar);
-- Here Oracle will insert implicit COMMIT, thus your foo table will
have value 1 commited.
-- And here Oracle will BEGIN a new trasaction.
INSERT INTO foo (bar) VALUES (2);
ROLLBACK;
-- And you will rollback the insert of value 2. Value 1 remains in the table,
-- because it is already committed.
Regards,
Dawid
From | Date | Subject | |
---|---|---|---|
Next Message | PFC | 2007-06-02 16:32:20 | Re: Stored Procedures and Functions |
Previous Message | Pavel Stehule | 2007-06-02 16:25:06 | Re: Stored Procedures and Functions |