|
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
|
|
Как при добавление новой записи заполнить сразу все таблицы23.09.2013, 10:09. Показов 2947. Ответов 26
Метки нет (Все метки)
Народ помогите разобраться!
Существует база данных в которой N количество таблиц, из этих таблиц одна главная, а все остальные привязаны к ней через ключ. Вопрос вот в чем как при добавление новой записи заполнить сразу все таблицы. Структура базы такова главная таблица (pid, fname, lname, ....) все остальные аналогичны этой (id, pid, adress, ....), не могу понять как при добавлении новой записи получить PID для всех таблиц кроме главной, т.к. там он присваивается автоматически
0
|
|
| 23.09.2013, 10:09 | |
|
Ответы с готовыми решениями:
26
Добавление новой записи в связанные таблицы Добавление новой записи в две таблицы
|
|
632 / 440 / 67
Регистрация: 19.09.2012
Сообщений: 1,632
|
|
| 23.09.2013, 10:18 | |
|
Посмотрите триггеры Mysql
0
|
|
|
Заблокирован
|
|
| 24.09.2013, 07:12 | |
|
Из текста не ясно каковы отношения. Добавление работае и со связанными таблицами, но если там иерархия то добавление распадается на части: надо добавить родителя, взять его id чтобы добавить в потомка, который сам родитель и тп.
0
|
|
|
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
|
|
| 24.09.2013, 11:16 [ТС] | |
|
0
|
|
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
|
| 29.09.2013, 23:57 | |
|
Тригеры штука быстрая, но тяжелая в понимании и реализации для новичка. К тому-же могут появиться пробемы при переносе базы.
Я предпочитаю работать в транзакции. Это более.. универсально. Начинаю транзакцию. Добавлять столько "связанных" записей сколько нужно, а потом "фиксировать" результат/транзакцию.
0
|
|
|
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
|
|
| 30.09.2013, 19:51 [ТС] | |
|
0
|
|
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
|
| 30.09.2013, 20:39 | |
|
Возможно поможет... (лень сочинять простой пример) Транзакции
0
|
|
|
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
|
||||||
| 19.11.2013, 15:04 [ТС] | ||||||
|
нашел решение используя функцию
0
|
||||||
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
||
| 20.11.2013, 02:24 | ||
|
0
|
||
|
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
|
|||||||
| 02.12.2013, 18:16 [ТС] | |||||||
|
может помогите, вот код того что я написал:
Да вот у меня возник еще один вопрос, после применения JQUERY у меня слетеля верстка на EXPLORER (часть где расположен блок с формой ввода теперь не отображается во всю высоту). как это лечить
0
|
|||||||
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
||
| 03.12.2013, 01:32 | ||
|
Суть транзакции в 3х командах (в основном): 1) начать транзакцию - ПЕРЕД любыми командами. Реально в базу ничего не пишется - собирается "в памяти". 2) зафиксировать транзакцию - пишем все сделаные изменения во всех таблицах в базу. 3) отменить транзакцию - передумали и решили ничего не сохранять. ВАЖНО! Следите чтобы транзакция не "забывалась" в открытом состоянии. Преимущества - дикий прирост в скорости, возможность одновременно (за одну операцию) сделать сотню изменений в разные таблицы (пока другие пользователи не вмешались) А дальше - яндекс в помощь (мне лень копать подзабытые исходники в поисках примеров) p.s. JQUERY не пользуюсь (я не дизайнер - рнр мне нужен для мелких автоматизаций и простых отчетов), но с EXPLORER многие не дружат... Добавлено через 1 минуту еще забыл по транзакциям! иногда можно открыть транзакцию в транзакции! не забывайте закрывать обе! Добавлено через 1 минуту смотрите на это как на php-шные скобки {} { } ... { { } }
0
|
||
|
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
|
|||||||
| 03.12.2013, 15:47 [ТС] | |||||||
|
написал вот так:
да и что-то в первую таблицу перестал заносить ![]() Добавлено через 3 часа 16 минут блин с первой таблицей все нормально все работает, вот только не получается вытянуть PID
0
|
|||||||
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
||
| 03.12.2013, 18:07 | ||
И подумав, не уверен что я посоветовал тебе правильный подход! (извини - уже 2 месяца в другом языке кодю и РНР не трогаю)до записи транзакции автономер еще не определен. что логично - ты начал транзакцию и я - не известно кто раньше сохранит. Пожалуй правильнее будет сначала добавить первую таблицу, получить номер, а потом в транзакции (так быстрее) добавить остальные записи с полученым номером. ведь все равно номер выделеный для первой записи тебе мне уже не достанется... Добавлено через 1 минуту ...но в случае неудачи добавления транзакции (остальных записей) прийдется удалить первую запись вручную
0
|
||
|
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
|
||
| 03.12.2013, 20:06 [ТС] | ||
![]()
0
|
||
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
||
| 03.12.2013, 22:16 | ||
|
Добавлено через 42 секунды (это чуть сложнее чем $dbh -> rollBack (); echo "Шеф! Фсё пропало : " . $e -> getMessage (); )
0
|
||
|
365 / 372 / 89
Регистрация: 01.12.2013
Сообщений: 1,629
|
|
| 03.12.2013, 22:38 | |
|
0
|
|
|
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
|
|||
| 03.12.2013, 23:15 [ТС] | |||
|
Добавлено через 6 минут
0
|
|||
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
||
| 04.12.2013, 01:41 | ||
|
А что здесь не понятного? если передумаешь добавлять вторую часть (или ошибка добавления), то 1) откатываешь транзакцию (rollBack) 2) удаляешь запись в таблице1 с номером который ты вычислил при его добавлении (delete from table1 where id=123).
0
|
||
|
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
|
|
| 04.12.2013, 01:44 [ТС] | |
|
0
|
|
|
420 / 357 / 47
Регистрация: 22.05.2013
Сообщений: 2,518
|
|
| 04.12.2013, 01:52 | |
|
Так ты же его вроде вычислил! mysql_insert_id()
И он вроде работает БЕЗ транзакций! Через транзакции добавляй только в те таблицы, где не надо вычислять их номер.
0
|
|
| 04.12.2013, 01:52 | |
|
Помогаю со студенческими работами здесь
20
Добавление новой записи в таблицу и осуществление запроса на добавление при загрузке формы
Возможна ли вставка новой записи в середину таблицы, а не добавление в конец? Как заполнить сразу 2 таблицы в БД SQL? При создании новой записи в форме, заново начинать нумерацию подиненной таблицы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|