|
Тема
|
Въпрос за 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 |
|
Защо не използваш ?
| |
|
И с какво транзакциите помагат в случая, че не схващам?
Въпросът е как да се подсигуриш, че стойността вмъкната в една таблица е същата като стойността в другата таблица.
Хайде обясни какво значение има дали се прави в транзакция или не?
Решението в MySQL е AUTO_INCREMENT колонка и LAST_INSERT_ID()
INSERT INTO t1 ...;
INSERT INTO t2 ... VALUES(LAST_INSERT_ID() ...);
с което се гарантира, че стойността вмъкната в t2 е точно тази която е генерирана автоматично за t1 в текущата сесия.
Работи независимо дали е в транзакция или не.
Няма опасност от конфликт и няма заключване.
| |
|
А възможно ли е да възникне проблем при insert'а ? Да се изпълни първия insert, но по някaква причина да не се изпълни втория ?
| |
Тема
|
Re: ?
[re: Matrix_N]
|
|
Автор | new (Нерегистриран) |
Публикувано | 15.02.06 23:35 |
|
да аз лично съм виждал, но всичко зависи от естеството на скрипта, примерно ако стойностите които вкарваш при втория инсърт не са искейпнати както трябва
| |
Тема
|
Re: ?
[re: new]
|
|
Автор | qwerty (Нерегистриран) |
Публикувано | 17.02.06 13:15 |
|
или ако някой подъл тип между двата insert-а изключи сървъра
| |
|
|
|
|