بسیاری از مواقع هنگامی که می خواهیم سطری به جدولی اضافه کنیم که کلید آن دستی ساخته می شود، امکان تداخل وجود دارد (یعنی کلید سطری که می خواهیم به جدول بیافزاییم با کلید یکی از سطرهای موجود در جدول یکی باشد)، یک راه ساده برای جلوگیری از این تداخل، نوشتن یک کوئری جداگانه برای بررسی وجود سطر تکراری است، و در صورت تکراری بودن کلید، کلید را تغییر داد.
ولی اگر بخواهیم در صورت تکرار کلید -بجای تغییر کلید- سطر موجود را تغییر دهیم، می توانیم از یک قابلیت ساده در SQL استفاده کنیم، به کد زیر توجه کنید:

INSERT INTO table (...) VALUES (...) 
	 ON DUPLICATE KEY UPDATE column1 = value

در کد فوق عبارت ON DUPLICATE KEY مشخص می کند که در صورت بروز تداخل در کلید اصلی ما خواهان انجام کار دیگری هستیم. کلیدواژه ```
UPDATE

عبارات بعد نیز مشخص کننده این هستند که چه ستون هایی می بایست مقدار جدید داشته باشند. 

به مثال زیر توجه کنید:

BEFORE EXECUTE QUERY:
variables

| Name | Value |

| title | MySql |
| Version | 0.1 |
| Time | 20:02 |

EXECUTE QUERY:
INSERT INTO variables (Name, Value) VALUES ('title', 'MariaDb') ON DUPLICATE KEY UPDATE Value = 'DB2';

AFTER EXECUTE QUERY:
variables

| Name | Value |

| title | DB2 |
| Version | 0.1 |
| Time | 20:02 |