Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 10:27 27.05.24 
Компютри и Интернет
   >> Бази данни
Всички теми Следваща тема *Кратък преглед

Тема Въпрос за Insert  
Авторneuk (Нерегистриран)
Публикувано09.02.06 11:05



Здравейте!

Интересува ме има ли варянт да се извършва едновременно инсъртване в повече от една таблица.
Става дума за MySQL (InnoDB таблици)

Ще съм ви благодарен за всякакви съвети или ако ме насочите къде мога да го прочета.



Тема Re: Въпрос за Insertнови [re: neuk]  
АвторЙopдaн (Нерегистриран)
Публикувано09.02.06 21:49



ЗАЩО би било необходимо???



Тема Re: Въпрос за Insertнови [re: Йopдaн]  
Авторnew (Нерегистриран)
Публикувано11.02.06 11:47



ами например за да се избегне работа с mysql_insert_id. таест ако си вкарал вече ред в дадена таблица и ID-то на реда е записано в другата таблица за да се осъществява връзка между двете.

Имам придвид следното (Простете за аматьорския начин на изписване)

TABLE1

ID | COLOMN

TABLE2

ID2 | COLOMN2 | TABLE1_ID


ID=TABLE1_ID



Тема Re: Въпрос за Insertнови [re: neuk]  
Авторnew (Нерегистриран)
Публикувано11.02.06 11:49



До MySQL 3 със сигурност НЯМА НАЧИН освен с повече от една заявка, използвай MYSQL_INSERT_ID, в ръководството е описана, ако не греша, работата с тази заявка



Тема Re: Въпрос за Insertнови [re: neuk]  
Авторnew (Нерегистриран)
Публикувано11.02.06 11:51



упс не видях че става дума за INNODB в този случай може и да греша, не съм работил с такива



Тема Re: Въпрос за Insertнови [re: new]  
Автор Matrix_N (Just a human)
Публикувано12.02.06 09:32



Защо не използваш

?



Тема Re: ?нови [re: Matrix_N]  
Автор salle (един такъв)
Публикувано12.02.06 18:12



И с какво транзакциите помагат в случая, че не схващам?

Въпросът е как да се подсигуриш, че стойността вмъкната в една таблица е същата като стойността в другата таблица.

Хайде обясни какво значение има дали се прави в транзакция или не?

Решението в MySQL е AUTO_INCREMENT колонка и LAST_INSERT_ID()

INSERT INTO t1 ...;

INSERT INTO t2 ... VALUES(LAST_INSERT_ID() ...);

с което се гарантира, че стойността вмъкната в t2 е точно тази която е генерирана автоматично за t1 в текущата сесия.

Работи независимо дали е в транзакция или не.
Няма опасност от конфликт и няма заключване.



Тема Re: ?нови [re: salle]  
Автор Matrix_N (Just a human)
Публикувано13.02.06 16:50



А възможно ли е да възникне проблем при insert'а ? Да се изпълни първия insert, но по някaква причина да не се изпълни втория ?



Тема Re: ?нови [re: Matrix_N]  
Авторnew (Нерегистриран)
Публикувано15.02.06 23:35



да аз лично съм виждал, но всичко зависи от естеството на скрипта, примерно ако стойностите които вкарваш при втория инсърт не са искейпнати както трябва



Тема Re: ?нови [re: new]  
Авторqwerty (Нерегистриран)
Публикувано17.02.06 13:15



или ако някой подъл тип между двата insert-а изключи сървъра




Всички темиСледваща тема*Кратък преглед
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.