-- Insert or update — classic syntax
INSERT INTO page_views (url, views, last_seen)
VALUES ('/about', 1, NOW())
ON DUPLICATE KEY UPDATE
views = views + 1,
last_seen = VALUES(last_seen);
-- MySQL 8.0.20+ — VALUES() is deprecated; use row aliases
INSERT INTO page_views (url, views, last_seen)
VALUES ('/about', 1, NOW()) AS new
ON DUPLICATE KEY UPDATE
views = views + 1,
last_seen = new.last_seen;
-- Idempotent insert-only (the MySQL equivalent of DO NOTHING)
INSERT IGNORE INTO events (event_id, payload)
VALUES ('evt_123', '{}');
-- Bulk upsert in one statement
INSERT INTO inventory (sku, qty) VALUES
('A1', 10), ('B2', 20), ('C3', 30)
ON DUPLICATE KEY UPDATE qty = qty + VALUES(qty);
Create a free account and build your private vault. Share publicly whenever you want.