Prosta odpowiedź - nie, to niemożliwe.
Dłuższa odpowiedź, tak, jeśli używasz procedury składowanej, która zwiększa wartość określonego identyfikatora, pobiera nową wartość i zwraca ją.
Właśnie przetestowałem to pod MySQL 5.1.59:
CREATE PROCEDURE increment (IN uniqid VARCHAR(255))
BEGIN
UPDATE `table` SET number = number + 1 WHERE id = uniqid;
SELECT number FROM `table` WHERE id = uniqid;
END
Użycie:
CALL increment(uniqid)
Jeśli możliwe jest wiele równoczesnych dostępów, możesz chcieć LOCK
najpierw tabelę, aby zapewnić niepodzielność operacji — MySQL najwyraźniej nie pozwala procedurom składowanym na samodzielne blokowanie tabel.