If you need to update an old record in unique key, try to use REPLACE 
function.  REPLACE could add if there has not existing record and update 
when it found a same unique key.

Sommai,

At 19:01 5/2/2002 +0000, DL Neil wrote:
>HelloErik,
>
> > I have a slight dilemma, and was wondering what the standard workaround
> > is.  I have three tables: owners (auto_increment primary key is
> > "owners_id"), objects (auto_increment primary key is "objects_id"), and
> > owners_objects (which is a foreign key table that I created, under
> > advice from someone on this list a while back whose email address has
> > changed -- there are two columns in owners_objects: "owners_id" and
> > "objects_id", and there are two unique indexes on the table,
> > "owners_id / objects_id" and "objects_id / owners_id" -- this is to keep
> > duplicates combinations in this table, since they would only take up
> > extra disk space).
> >
> > I am designing an application in PHP which stores the relationship
> > between an Owner and an Object using the owners_objects table in a
> > many-to-many relationship.  When someone adds a new owner, they can
> > choose from an HTML listbox any number of objects to associate with that
> > owner.  The PHP code creates an INSERT statement that inserts the data
> > into "owners", and then takes the auto_incremented primary key of the
> > last insert (which is the insert into "owners") and uses that as the
> > value for the second INSERT statemetn: to insert into
> > "owners_objects.owner_id".  In this second INSERT statement, the
> > "objects_id" of the Object(s) selected from the listbox go into the
> > second column of "owners_objects".
> >
> > I am sure that many people have done this sort of setup.  But what do
> > you do to get around the problem of INSERTing a pair of values that
> > already exist?  Because the combinations in "owners_objects" are UNIQUE
> > (the UNIQUE indexes), MySQL won't accept a pair that is already
> > present.  I see two possible options:
> >
> > 1) Check to see if the combination is already present, and if so, do not
> > run the INSERT query
> > 2) run the INSERT query regardless and suppress the error message
> >
> > The disadvantage of the first one is that it adds an extra SQL query to
> > the process.  The disadvantage of the second one is that I think it is
> > somewhat tasteless to execute code that will knowingly error -- or
> > should I just stop trying to be such a perfectionist?
> >
> > I would post code but this is all pseudocode right now b/c I haven't
> > solved this dilemma yet -- all experimentation with this has been done
> > from the mysql client.
>
>=option 2: whilst native-MySQL will give an errmsg in response to an 
>attempt to INSERT duplicates, PHP doesn't
>have to pay attention! Check out MySQL_affected_rows().
>
>=dn
>
>
>
>---------------------------------------------------------------------
>Before posting, please check:
>    http://www.mysql.com/manual.php   (the manual)
>    http://lists.mysql.com/           (the list archive)
>
>To request this thread, e-mail <[EMAIL PROTECTED]>
>To unsubscribe, e-mail 
><[EMAIL PROTECTED]>
>Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php


---------------------------------------------------------------------
Before posting, please check:
   http://www.mysql.com/manual.php   (the manual)
   http://lists.mysql.com/           (the list archive)

To request this thread, e-mail <[EMAIL PROTECTED]>
To unsubscribe, e-mail <[EMAIL PROTECTED]>
Trouble unsubscribing? Try: http://lists.mysql.com/php/unsubscribe.php

Reply via email to