Ann W. Harrison wrote:
Is there a plausible (non-QA) use case for ignoring other errors?

I can tell you where we use it.  You can decide if it is plausible.

We have triggers on tables to track changes to key tables. When inserts, updates and deletes happen on those tables, their primary key is placed into a queue table. We then use this queue (MEMORY) table to process the changed data and move it up to our front end servers. We use INSERT IGNORE in the trigger as the key in question may already be in the queue table. We don't want our trigger failing as it would make the query that started it fail.

I could switch that to DELAYED and get the same effect. DELAYED (please oh please don't kill delayed) is used in our real time logging inserts. More reliable methods are used for keeping logs that matter (i.e. make us money). But, for real time analysis - what is happening right now - it is easier to insert delayed into a table and let our application continue on its way.

Of course, I could keep all that on MySQL as well. I would guess that IGNORE is not going away from MySQL.

The other option to not use IGNORE for insert is to use REPLACE INTO. It has the uneviable quality however that it inserts and deletes every time. AFAIK, it does that even if no columns/rows change.

Perhaps an extension to the ON DUPLICATE KEY UPDATE syntax could be used instead of IGNORE. ON DUPLICATE KEY IGNORE perhaps? That is more explicit than just IGNORE and would not ignore other errors that are not duplicate key related?

--

Brian Moon
Senior Web Engineer
------------------------------
When you care enough to spend the very least.
http://dealnews.com/


_______________________________________________
Mailing list: https://launchpad.net/~drizzle-discuss
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~drizzle-discuss
More help   : https://help.launchpad.net/ListHelp

Reply via email to