|
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
|
|
Как при добавление новой записи заполнить сразу все таблицы23.09.2013, 10:09. Показов 2984. Ответов 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? При создании новой записи в форме, заново начинать нумерацию подиненной таблицы Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|