You could try a stored procedure that either inserts a new row or updates an existing row:
CREATE PROCEUDRE InsertOrUpdateRecord(IN NewID INT, ... other params ... ) BEGIN IF NOT EXISTS (SELECT ID FROM myTable WHERE ID = NewID) THEN BEGIN INSERT INTO myTable (....) END; ELSE BEGIN UPDATE myTable SET ..... END; END IF; END; Randall Price Secure Enterprise Technology Initiatives Microsoft Implementation Group Virginia Tech Information Technology -----Original Message----- From: Douglas Pearson [mailto:[EMAIL PROTECTED] Sent: Friday, April 13, 2007 2:14 AM To: [EMAIL PROTECTED] Subject: Is it possible to either update or insert in a single query? Apologies if this is a dumb question, but is it possible to write a single query that either updates certain columns in a row, or adds an entirely new row if there is none already? I seem to be running into this a lot, and so far I've solved it by: 1) run UPDATE table SET x,y WHERE some row 2) if rowsChanged == 0 then run the INSERT It just feels like there must be a way to do this more efficiently. Thanks, Doug -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED] -- MySQL General Mailing List For list archives: http://lists.mysql.com/mysql To unsubscribe: http://lists.mysql.com/[EMAIL PROTECTED]