Как одной строкой запроса добавить один и тот же сгенерированный UUID в поле Key таблицы1 и в поле Foreign Key таблицы2 ? - MySQL

Узнай цену своей работы

Формулировка задачи:

У меня получается добавить одним запросом один и тот же UUID в две таблицы. Как одной строкой запроса добавить один и тот же сгенерированный UUID в поле Key таблицы1 и в поле Foreign Key таблицы2 ?
INSERT INTO `t1` (`uid1`, `c2`, `c3`, `c4`, `c5`) 
VALUES (
UUID(), 
'v2', 
'v3', 
'v4', 
'v5')
Вторая таблица имеет вид `t2` (`uid2`, `c2`, `c3`, `c4`, `uid1 foreign key`)

Решение задачи: «Как одной строкой запроса добавить один и тот же сгенерированный UUID в поле Key таблицы1 и в поле Foreign Key таблицы2 ?»

textual
Листинг программы
CREATE DEFINER=`dba1`@`localhost` PROCEDURE `p_add3`()
BEGIN
 INSERT INTO `bk_hotels` (`uid`, `name`, `id`, `country`, `city`) VALUES (UUID(), 'NewHotel',@uid := UUID(),'45','Male');
 INSERT INTO `media` (`uid`,`address`,`telephone`,`fax`,`email`,`web`) VALUES (@uid, 'New st. 1','+96','+97','aaa.ml','aa.ml');
 SELECT ('Done');
END

Объяснение кода листинга программы

  1. Создание хранимой процедуры p_add3 с определением пользователя dba1 и указанием адреса localhost.
  2. Начало блока BEGIN.
  3. Вставка данных в таблицу bk_hotels с использованием оператора INSERT INTO, указанием столбцов uid, name, id, country, city и значений для них. Значение для столбца id генерируется с помощью функции UUID(). Значение переменной @uid присваивается значение UUID().
  4. Вставка данных в таблицу media с использованием оператора INSERT INTO, указанием столбцов uid, address, telephone, fax, email, web и значений для них. Значение для столбца uid берется из переменной @uid.
  5. Выполнение запроса SELECT с возвратом значения 'Done'.
  6. Конец блока END.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4 из 5
Похожие ответы