Si je le fait à la main, imaginons que je souhaite ajouter un bug relatif a un projet, je doit d'abord récupérer le plus grand ID déjà utilisé pour ce projet. Je procède donc ainsi:
 
SELECT MAX(id) FROM bug WHERE project_id = 1
 
J'incrément cette valeur ainsi obtenu de 1 pour la stocker dans une variable nommé new_id
 
Je peux enfin faire:
 
INSERT INTO `bug` (`id`, `project_id`, `label`) VALUES (
    new_id,
    '1',
    'Un bug'
);
 
 
Y a-til une façon d'effectuer cela en une seule requête en MySQL? Si je remplace new_id directement par la requête SELECT comme ceci:
 
INSERT INTO `bug` (`id`, `project_id`, `label`) VALUES (
    SELECT MAX(id) FROM bug WHERE project_id = 1,
    '1',
    'Un bug'
);
 
j'ai une erreur #1093 - You can't specify target table 'bug' for update in FROM clause 