La chose la plus appropriée que je puisse imaginer est de créer un index unique sur la colonne slug
ALTER TABLE pages ADD UNIQUE KEY slug;
La raison est simple :s'il n'y a pas de contrainte unique, il peut y avoir plus d'un slug avec "mainpage"... lequel doit être mis à jour ?
puis utilisez ON DUPLICATE KEY UPDATE clause :
INSERT INTO pages
VALUES (NULL, $title, $content, $slug) ON DUPLICATE KEY UPDATE content=$content