Чтобы получить / вернуть сгенерированный базой данных-uuid, мы можем использовать переменную базы данных:
SET @uuid=UUID();
INSERT INTO uuidtable (uuid,id_u) values (@uuid,$number);
SET @uuid = IF(ROW_COUNT(),@uuid,null);#way1
SELECT @uuid;#way1
#SELECT IF(ROW_COUNT(),@uuid,null) as uuid;#way2
Мы создаем uuid перед запросом вставки и сохраняем его в @uuid. Это позволяет нам использовать его (для других таблиц, как внешний ключ) или вернуть его значение, например, использовать его в своем (php-) коде, перенаправить, позвонить или как угодно.
way1: после запроса на вставку снова установите переменную, в зависимости от успешности вставки. Если вставка завершилась неудачно, возврат нашего запроса будет нулевым, поэтому мы можем обработать его в нашем приложении, и мы избегаем использования uuid, которое, как мы думали, использовалось, но никогда не было.
way2: просто сохраните строки / запросы и оставьте переменную существующей. Наш возврат чистый, но переменная все еще находится в памяти базы данных.
Преимущество этого метода: мы можем запустить его в базе данных один раз и получить один возврат, если мы сначала запустим select, чтобы получить uuid и вставить после, мы могли бы получить потенциальную двойную задержку с помощью db-driver-network -связность.