^ Trở về đầu trang

logo

Using INSERT IGNORE with MySQL to prevent duplicate key errors

Thứ 3, 8:24 AM Ngày 03/05/2011, số lần xem 918, Lập trình web

An error will occur when inserting a new record in MySQL if the primary key specified in the insert query already exists. Using the "IGNORE" keyword prevents errors from occuring and other queries are still able to be run.

Why?

Although you shouldn't normally attempt to insert a record without first checking if the primary key you want to use has already been used, there may be times when this is required, such as when multiple developers need to update their own copies of a database, and a particular record may already exist in one or other of the databases.

Inserting a single record

The syntax is simple - just add "IGNORE" after "INSERT" like so:

	INSERT IGNORE INTO mytable      
		(primaryKey, field1, field2)  
	VALUES      
		('abc', 1, 2);

Inserting multiple records

When inserting mutiple records at once, any that cannot be inserting will not be, but any that can will be:

	INSERT IGNORE INTO mytable
    	(primaryKey, field1, field2)
	VALUES
		('abc', 1, 2),
		('def', 3, 4),
		('ghi', 5, 6);

In the second example above, if records already existed for 'abc' and 'def' then those two records would not be inserted, but the record for 'ghi' would be.

electrictoolbox.com


QR code

Bình luận

Bài viết mới

Bài viết nên xem

Xem nhiều nhất

Bài viết ngẫu nhiên

Thống kê