Vous avez une erreur de syntaxe dans votre déclaration :
INSERT INTO `statuses`
(SELECT 'Something', 'Something else', 123
WHERE NOT EXISTS (SELECT * FROM `statuses`)
) union all
(SELECT 'Something', 'Something else', 234
WHERE NOT EXISTS (SELECT * FROM `statuses`)
);
Vous devez répéter le where
deux fois dans ce cas, une fois pour chaque sous-requête. Vous pouvez également faire :
INSERT INTO `statuses`
select t.*
from ((SELECT 'Something' as col1, 'Something else' as col2, 123 as col3
) union all
(SELECT 'Something', 'Something else', 234
)
) t
WHERE NOT EXISTS (SELECT * FROM `statuses`);
Dans cette version, vous devez attribuer des noms aux colonnes.
Ou, vous pouvez simplement utiliser deux instructions d'insertion distinctes.