Основным недостатком UUID является то, что вам нужно создавать их заранее, если вы хотите вернуться к записи для дальнейшего использования (т. Е. Добавить дочерние записи в зависимые таблицы с внешним ключом):
INSERT INTO table (uuidfield, someotherfield) VALUES (uuid(), 'test'));
не позволит вам увидеть, что представляет собой новое значение UUID, и, поскольку вы не используете обычный первичный ключ auto_incremented, вы не можете использовать last_insert_id()
для его получения. Вы должны сделать это в два этапа:
SELECT @newuid := uuid();
INSERT INTO table (uuidfield, someotherfield) VALUES (@newuid, 'test');
INSERT INTO childtable ..... VALUES (@newuid, ....);