SQL Transaction related

Started by Harpreet Dhaliwalalmost 19 years ago3 messagesgeneral
Jump to latest
#1Harpreet Dhaliwal
harpreet.dhaliwal01@gmail.com

Hi,

I have a transaction like following:

BEGIN

INSERT INTO tbl_xyz VALUES (val1, val2);

SELECT INTO wid MAX(val1) FROM tbl_xyz;

END;

My question is in the SELECT INTO statement, will I get the value of val1
from the INSERT INTO in the same transaction
even though the transaction has not ended yet.
I think no.
How would I get that latest value of val1 in the same transaction because
its not committed yet as the transaction has not ended.

Thanks,

~Harpreeet

#2Uwe C. Schroeder
uwe@oss4u.com
In reply to: Harpreet Dhaliwal (#1)
Re: SQL Transaction related

Yes it will. Everything INSIDE ONE transaction is visible to that exact
transaction. So in your scenario the val1 from the select will see what was
inserted - just any other transaction won't unless the current one is
committed.

Uwe

On Wednesday 09 May 2007, Harpreet Dhaliwal wrote:

Hi,

I have a transaction like following:

BEGIN

INSERT INTO tbl_xyz VALUES (val1, val2);

SELECT INTO wid MAX(val1) FROM tbl_xyz;

END;

My question is in the SELECT INTO statement, will I get the value of val1
from the INSERT INTO in the same transaction
even though the transaction has not ended yet.
I think no.
How would I get that latest value of val1 in the same transaction because
its not committed yet as the transaction has not ended.

Thanks,

~Harpreeet

--
Open Source Solutions 4U, LLC 1618 Kelly St
Phone: +1 707 568 3056 Santa Rosa, CA 95401
Cell: +1 650 302 2405 United States
Fax: +1 707 568 6416

#3A. Kretschmer
andreas.kretschmer@schollglas.com
In reply to: Harpreet Dhaliwal (#1)
Re: SQL Transaction related

am Thu, dem 10.05.2007, um 2:24:40 -0400 mailte Harpreet Dhaliwal folgendes:

Hi,

I have a transaction like following:

BEGIN

INSERT INTO tbl_xyz VALUES (val1, val2);

SELECT INTO wid MAX(val1) FROM tbl_xyz;

END;

My question is in the SELECT INTO statement, will I get the value of val1 from
the INSERT INTO in the same transaction

No, you get MAX(val1). If the last inserted record contains this value,
than you get it.

even though the transaction has not ended yet.
I think no.

Within a transaction you see everything that has gone in this
transaction. Why not?

How would I get that latest value of val1 in the same transaction because its
not committed yet as the transaction has not ended.

We have MVCC, and you see your own snapshot, including all results
within this transaction.

Andreas
--
Andreas Kretschmer
Kontakt: Heynitz: 035242/47150, D1: 0160/7141639 (mehr: -> Header)
GnuPG-ID: 0x3FFF606C, privat 0x7F4584DA http://wwwkeys.de.pgp.net