Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Использование ID последней добавленной строки в UNION
 
 автор: brokonyer   (07.04.2009 в 10:49)   письмо автору
 
 

Есть 2 таблицы


table1
-id (auto_increment)
-text

table2
-id (auto_increment)
-subid
-text


Требуется добавить информацию в эти таблицы одним запросом, но при добавлении в таблицу table2 надо ввести параметр subid (id последней строки таблицы table1)

INSERT into `table1` (`text`) values('asdasd') UNION INSERT into `table2` (`subid`, `text`) value(ID_TABLE1_asdasd ,'qweqe qwe');


Возможно ли реализовать что то такое?

Суть в том чтоб в эти таблицы информации не добавлялись если не возможно один из них

Я поискал в интернете, пока что не столкнулся подобной ситуацией. В принципе должен быть методы чтоб сохранить целостность запросов.

  Ответить  
 
 автор: ols   (07.04.2009 в 14:56)   письмо автору
 
   для: brokonyer   (07.04.2009 в 10:49)
 

-

  Ответить  
 
 автор: brokonyer   (07.04.2009 в 15:29)   письмо автору
 
   для: ols   (07.04.2009 в 14:56)
 


START TRANSACTION;
INSERT into `table1` (`text`) values ('asdfsdf');
INSERT into `table2` (`text`,`subid`) values ('asdfsdf', (SELECT LAST_INSERT_ID() FROM `table1` LIMIT 0,1));
COMMIT;


Вродеб с помощью транзакции работает

  Ответить  
 
 автор: brokonyer   (08.04.2009 в 09:53)   письмо автору
 
   для: brokonyer   (07.04.2009 в 15:29)
 

не совсем работает. Бывает моменты когда у второго запроса выдает ошибку но все равно первый выполняется.

Все операции выполняются даже если не написать COMMIT;

  Ответить  
 
 автор: Trianon   (08.04.2009 в 11:12)   письмо автору
 
   для: brokonyer   (08.04.2009 в 09:53)
 

БД какого типа
InnoDB?
MyISAM?

  Ответить  
 
 автор: brokonyer   (08.04.2009 в 15:15)   письмо автору
 
   для: Trianon   (08.04.2009 в 11:12)
 

MyISAM

  Ответить  
 
 автор: Trianon   (08.04.2009 в 15:16)   письмо автору
 
   для: brokonyer   (08.04.2009 в 15:15)
 

myisam транзакции не поддерживает.

  Ответить  
 
 автор: brokonyer   (10.04.2009 в 22:31)   письмо автору
 
   для: Trianon   (08.04.2009 в 15:16)
 

Понятно, Спасибо

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования