On 13 Jun, 06:35, Tim Roberts <[EMAIL PROTECTED]> wrote: > Captain Paralytic <[EMAIL PROTECTED]> wrote: > >On 11 Jun, 07:37, Tim Roberts <[EMAIL PROTECTED]> wrote: > >| Not in standard SQL. MySQL supports a REPLACE extension that does > >| an UPDATE if the key already exists, and an INSERT if it does not. > >| There is also an extension clause to the INSERT statement called > >| "ON DUPLICATE KEY UPDATE xxx" that might do what you want. > > >No Tim, that is not correct. the REPLACE extension does not do an > >update, it does a replace. It delets the old record and inserts a new > >one. The INSERT...ON DUPLICATE KEY UPDATE... does an update. So a > >REPLACE will remove all existing field values not referenced in the > >statement, whilst an INSERT...ON DUPLICATE KEY UPDATE... will preserve > >them. Also REPLACE will make a TIMESTAMP column which has a DEFAULT > >CURRENT_TIMESTAMP setting work like one which has ON UPDATE > >CURRENT_TIMESTAMP DEFAULT CURRENT_TIMESTAMP setting. > > Thanks for the correction; that's an important difference. I'm a Postgres > guy; if I had noticed this was cross-posted to c.d.mysql as well as > comp.lang.python, I probably would have kept quiet. > -- > Tim Roberts, [EMAIL PROTECTED] > Providenza & Boekelheide, Inc.
But then you wouldn't have learned about this important difference. I too learn a lot when I give what I think is a correct answer and then have someone else explain what really happens. The wonder of usenet. -- http://mail.python.org/mailman/listinfo/python-list