Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Можно в SQL запросе создать переменную на время запроса?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
kappa
Отправлено: 20 Февраля, 2012 - 14:09:39
Post Id



Посетитель


Покинул форум
Сообщений всего: 349
Дата рег-ции: Апр. 2011  


Помог: 3 раз(а)




День добрый. Подскажите , а можно ли во время транзакции создать переменную.
К примеру в таком запросе:

CODE (SQL):
скопировать код в буфер обмена
  1. START TRANSACTION;
  2. INSERT INTO..;
  3. SELECT LAST_INSERT_ID(); // чтобы в дальнейшем можно было использовать этот результат, не прибегая к подзапросам.
  4. INSERT INTO TABLE (id) VALUES (переменная);
  5. COMMIT;

(Отредактировано автором: 20 Февраля, 2012 - 14:10:54)

 
 Top
caballero
Отправлено: 20 Февраля, 2012 - 14:48:36
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




а чем заполнение кадждый раз некоей переменной отдельным запросом лучше подзапроса


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
kappa
Отправлено: 20 Февраля, 2012 - 14:51:45
Post Id



Посетитель


Покинул форум
Сообщений всего: 349
Дата рег-ции: Апр. 2011  


Помог: 3 раз(а)




Тут разница в том что заранее ID то неизвестен.
Если интересно кому я опишу почему пришлось прийти к такой реализации.
Уже вроде как разобрался, вот как у себя тестировал, может кому будет интересно.

CODE (SQL):
скопировать код в буфер обмена
  1. START TRANSACTION;
  2. INSERT INTO main_size (idmain, idsize) VALUES (55,66);
  3. SELECT @A:= LAST_INSERT_ID();
  4. INSERT INTO main_size (idmain, idsize) VALUES (55,@A);
  5. INSERT INTO main_size (idmain, idsize) VALUES (99,@A);
  6. SELECT * FROM main_size;
  7. ROLLBACK;
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« SQL и Архитектура БД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB