Как одной строкой запроса добавить один и тот же сгенерированный UUID в поле Key таблицы1 и в поле Foreign Key таблицы2 ? - MySQL
Формулировка задачи:
У меня получается добавить одним запросом один и тот же UUID в две таблицы.
Как одной строкой запроса добавить один и тот же сгенерированный UUID в поле Key таблицы1 и в поле Foreign Key таблицы2 ?
Вторая таблица имеет вид
`t2` (`uid2`, `c2`, `c3`, `c4`, `uid1 foreign key`)
INSERT INTO `t1` (`uid1`, `c2`, `c3`, `c4`, `c5`) VALUES ( UUID(), 'v2', 'v3', 'v4', 'v5')
Решение задачи: «Как одной строкой запроса добавить один и тот же сгенерированный 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
Объяснение кода листинга программы
- Создание хранимой процедуры
p_add3
с определением пользователяdba1
и указанием адресаlocalhost
. - Начало блока BEGIN.
- Вставка данных в таблицу
bk_hotels
с использованием оператора INSERT INTO, указанием столбцовuid
,name
,id
,country
,city
и значений для них. Значение для столбцаid
генерируется с помощью функции UUID(). Значение переменной@uid
присваивается значение UUID(). - Вставка данных в таблицу
media
с использованием оператора INSERT INTO, указанием столбцовuid
,address
,telephone
,fax
,email
,web
и значений для них. Значение для столбцаuid
берется из переменной@uid
. - Выполнение запроса SELECT с возвратом значения 'Done'.
- Конец блока END.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д