Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> Re: unique constraint violation problem

Re: unique constraint violation problem

From: Stephane Faroult <sfaroult_at_oriole.com>
Date: Mon, 07 Jul 2003 14:35:37 -0700
Message-ID: <F001.005C3B5B.20030707125426@fatcity.com>


Anna Li wrote:
>
> Hi,
>
> I created a unique index on a table called REGISTRATION_K, but no unique
> constraint. Last week when the application tried to insert a record into
> the table, we got following error in the log file:
>
> Oracle::st execute failed: ORA-00001: unique constraint (REGISTRATION_K)
> violated
>
> However, the record was inserted into the table successfully. There are no
> duplicate records in the table. Could anyone explain why?
>
> Any input will be highly appreciated. Thanks in advance.
>
> Anna
>

Anna,

  1. For both historical and implementation reasons, there is a bit of confusion between unique indexes and unique constraint. ORA-00001 (notice the low number ... it has been here since the beginnings) used to be the 'duplicate value in index' error (when constraints were a notion unknown of Oracle). A unique constraint is enforced by a unique index, and by force a unique index creates an implicit unique constraint.
  2. You are misinterpreting. The record was NOT inserted successfully. It wasn't inserted at all. What you found in the table was the original row, which caused the redundant insertion fo fail.
-- 
Regards,

Stephane Faroult
Oriole Software
-- 
Please see the official ORACLE-L FAQ: http://www.orafaq.net
-- 
Author: Stephane Faroult
  INET: [EMAIL PROTECTED]

Fat City Network Services    -- 858-538-5051 http://www.fatcity.com
San Diego, California        -- Mailing list and web hosting services
---------------------------------------------------------------------
To REMOVE yourself from this mailing list, send an E-Mail message
to: [EMAIL PROTECTED] (note EXACT spelling of 'ListGuru') and in
the message BODY, include a line containing: UNSUB ORACLE-L
(or the name of mailing list you want to be removed from).  You may
also send the HELP command for other information (like subscribing).
Received on Mon Jul 07 2003 - 16:35:37 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US