How to 'insert if not exists' in php MySQL

I started by googling, and found this article which talks about mutex tables.

I have a table with ~14 million records. If I want to add more data in the same format, is there a way to ensure the record I want to insert does not already exist without using a pair of queries (ie, one query to check and one to insert is the result set is empty)?

Does a unique constraint on a field guarantee the insert will fail if it's already there?

It seems that with merely a constraint, when I issue the insert via php, the script croaks.


Does a unique constraint on a field guarantee the insert will fail if it's already there?

The unique constraints are enforced when inserting new data. If you try and insert data into a table that already has data, you should get an error like below:

Error Code: 1062. Duplicate entry 'john-doe-(408)-999-9765' for key 'idx_name_phone'

You can use INSERT IGNORE to simply ignore the insert on the duplicate rows (The error is essentially turned to a warning), or use ON DUPLICATE KEY UPDATE to update the row instead of inserting a new one. See this post for more information.

链接地址: http://www.djcxy.com/p/58674.html

上一篇: 为什么JSF在服务器上保存UI组件的状态?

下一篇: 如何在php MySQL中插入“如果不存在”