On Thu, Sep 08, 2011 at 10:31:39PM +0800, Lincoln Yeoh wrote:
>
> Doesn't catching the failure and retrying mean writing more code?
Well, yes. OTOH, if you want to use "upsert" and you have to use
other database systems too, then you'll need that other code also,
since it's not standard.
There
At 04:04 AM 9/8/2011, Andrew Sullivan wrote:
On Wed, Sep 07, 2011 at 02:51:32PM -0500, Merlin Moncure wrote:
>
> @andrew s: going SERIALIZABLE doesn't help if you trying to eliminate
> cases that would push you into retrying the transaction.
Well, no, of course. But why not catch the failure an
On Thu, Sep 8, 2011 at 9:14 AM, Lincoln Yeoh wrote:
> At 03:51 AM 9/8/2011, Merlin Moncure wrote:
>>
>> > Don't you have to block SELECTs so that the SELECTs get serialized?
>> > Otherwise concurrent SELECTs can occur at the same time, find no
>> > existing
>> > rows, then "all" the inserts procee
At 03:51 AM 9/8/2011, Merlin Moncure wrote:
> Don't you have to block SELECTs so that the SELECTs get serialized?
> Otherwise concurrent SELECTs can occur at the same time, find no existing
> rows, then "all" the inserts proceed and you get errors (or dupes).
>
> That's how Postgresql still works
At 03:51 AM 9/8/2011, Merlin Moncure wrote:
yeah -- but you only need to block selects if you are selecting in the
inserting transaction (this is not a full upsert). if both writers
are doing:
begin;
lock table foo exclusive;
insert into foo select ... where ...;
commit;
is good enough. btw ev
On Wed, Sep 7, 2011 at 3:04 PM, Andrew Sullivan wrote:
> On Wed, Sep 07, 2011 at 02:51:32PM -0500, Merlin Moncure wrote:
>>
>> @andrew s: going SERIALIZABLE doesn't help if you trying to eliminate
>> cases that would push you into retrying the transaction.
>
> Well, no, of course. But why not cat
On Wed, Sep 07, 2011 at 02:51:32PM -0500, Merlin Moncure wrote:
>
> @andrew s: going SERIALIZABLE doesn't help if you trying to eliminate
> cases that would push you into retrying the transaction.
Well, no, of course. But why not catch the failure and retry? I
guess I just don't get the problem
On Wed, Sep 7, 2011 at 10:45 AM, Lincoln Yeoh wrote:
> At 05:23 AM 9/7/2011, Merlin Moncure wrote:
>>
>> On Tue, Sep 6, 2011 at 3:45 PM, Merlin Moncure wrote:
>>
>> > b) doesn't block reads if you lock in EXCLUSIVE mode. a) is the best
>> > way to go if you prefer to handle errors on the client
On Wed, Sep 07, 2011 at 11:45:11PM +0800, Lincoln Yeoh wrote:
> Don't you have to block SELECTs so that the SELECTs get serialized?
If you want to do that, why wouldn't you just use serializable mode?
A
--
Andrew Sullivan
a...@crankycanuck.ca
--
Sent via pgsql-general mailing list (pgsql-gene
At 05:23 AM 9/7/2011, Merlin Moncure wrote:
On Tue, Sep 6, 2011 at 3:45 PM, Merlin Moncure wrote:
> b) doesn't block reads if you lock in EXCLUSIVE mode. a) is the best
> way to go if you prefer to handle errors on the client and/or
> concurrency is important...c) otherwise.
whoops! meant to
On Tue, Sep 6, 2011 at 3:45 PM, Merlin Moncure wrote:
> On Tue, Sep 6, 2011 at 1:50 PM, Lincoln Yeoh wrote:
>> At 07:02 PM 9/5/2011, J. Hondius wrote:
>>>
>>> I agree that there are better ways to do this.
>>> But for me this works. (legacy driven situation)
>>>
>>> INSERT INTO tbinitialisatie (c
On Tue, Sep 6, 2011 at 1:50 PM, Lincoln Yeoh wrote:
> At 07:02 PM 9/5/2011, J. Hondius wrote:
>>
>> I agree that there are better ways to do this.
>> But for me this works. (legacy driven situation)
>>
>> INSERT INTO tbinitialisatie (col1, col2)
>> SELECT 'x', 'y'
>> FROM tbinitialisatie
>> WHE
At 07:02 PM 9/5/2011, J. Hondius wrote:
I agree that there are better ways to do this.
But for me this works. (legacy driven situation)
INSERT INTO tbinitialisatie (col1, col2)
SELECT 'x', 'y'
FROM tbinitialisatie
WHERE not exists (select * from tbinitialisatie where col1 = 'x'
and col2 = 'y
I agree that there are better ways to do this.
But for me this works. (legacy driven situation)
INSERT INTO tbinitialisatie (col1, col2)
SELECT 'x', 'y'
FROM tbinitialisatie
WHERE not exists (select * from tbinitialisatie where col1 = 'x' and
col2 = 'y')
LIMIT 1
Pau Marc Muñoz Torre
Ok , thanks Sim, now i see it
P
2011/9/5 Sim Zacks
> **
> On 09/05/2011 01:37 PM, Pau Marc Muñoz Torres wrote:
>
> i don't see it clear, let me put an example
>
> i got the following table
>
> molec varchar(30)
> seq varchar(100)
>
> where I insert my values
>
> lets image that i have a recor
On 09/05/2011 01:37 PM, Pau Marc Muñoz Torres wrote:
i don't see it clear, let me put an example
i got the following table
molec varchar(30)
seq varchar(100)
where I insert my values
lets image that i have a record introduc
i don't see it clear, let me put an example
i got the following table
molec varchar(30)
seq varchar(100)
where I insert my values
lets image that i have a record introduced as ('ubq', 'aadgylpittrs')
how i can prevent to insert another record where molec='ubq' ?
thanks
2011/9/5 Thomas Ke
On 09/05/2011 12:38 PM, Pau Marc Muñoz Torres wrote:
Hi follk
i trying to performe a conditional insert into a table, indeed,
what i'm trying to do is not insert a record into the table if
that record exist
googleling i found something like
Pau Marc Muñoz Torres, 05.09.2011 11:38:
Hi follk
i trying to performe a conditional insert into a table, indeed, what i'm
trying to do is not insert a record into the table if that record exist
googleling i found something like
insert into XX values (1,2,3) where not exist (select
On 05/09/2011 10:38, Pau Marc Muñoz Torres wrote:
> Hi follk
>
> i trying to performe a conditional insert into a table, indeed, what
> i'm trying to do is not insert a record into the table if that record exist
>
> googleling i found something like
>
> insert into XX values (1,2,3) where no
Στις Monday 05 September 2011 12:38:34 ο/η Pau Marc Muñoz Torres έγραψε:
> Hi follk
>
> i trying to performe a conditional insert into a table, indeed, what i'm
> trying to do is not insert a record into the table if that record exist
>
thats why primary/unique keys are for.
isolate the colu
Hi follk
i trying to performe a conditional insert into a table, indeed, what i'm
trying to do is not insert a record into the table if that record exist
googleling i found something like
insert into XX values (1,2,3) where not exist (select );
but i'm having and error near where...
an
22 matches
Mail list logo