the problem is, that the second sql produces more
than one row. To be exactly the amount of
select count(*) from acteursenc rows, with
'Michael Sweeney' as value in BB. Perhaps you
have a unique key on nomacteur?!

I could help further, if i know what you want to do
with your query.
if nuacteur is a pk, use a sequence!!!!!
if two users send this query almost at the same time,
you'll get two times the same pk.
That's because of oracles locking mechanism:
Read does not block read.
read does not block write.
write does not block read.
write blocks write on the same column.
if someone inserts a row with your statement, and hasn't commited his
transaction,
and someone else inserts a row with your statment before he has commited,
then the two will get the same results for max(id)+1. A sequence will never
give the
same result and is easy to use. and for your query, wouldn' this be easier:
insert into acteursenc
   (nuacteur, nomacteur)
values
   (S_ACTEURSENC.NEXTVAL, 'Michael Sweeney')

please explain what you want to do.

Michael

"Michael Sweeney" <[EMAIL PROTECTED]> schrieb im Newsbeitrag
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
> My following query :
>
> insert into acteursenc (nuacteur,nomacteur)
>                     (select AA, BB from
>                     (select max(nuacteur)+1 AA from acteursenc),
>                     (select 'Michael Sweeney' BB from acteursenc))"
>
> produces an ORA-00001: unique constraint error.
>
> The primary key is nuacteur, but by setting AA to max(nuacteur)+1 I should
> be getting a new key that is unique, however it does not seem that way.
>
> What am I doing wrong here?
>
>



-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to