Jeg vil prøve det, men husk på, at det kommer fra en Microsoft SQL-baggrund, og jeg er ikke bekendt med den nøjagtige struktur af dine tabeller, så noget af SQL'en er nok en smule uoverskuelig.
IF (SELECT COUNT(*) FROM beta WHERE name = 'John' > 0)
UPDATE alfa SET c1=(SELECT id FROM beta WHERE name = 'John')
ELSE
BEGIN
INSERT INTO beta (name) VALUES ('John')
INSERT INTO alfa (c1) VALUES (LAST_INSERT_ID())
END
Håber dette er til lidt hjælp.