|
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
|
|
insert в 3 таблицы за один запрос05.01.2012, 05:55. Показов 3707. Ответов 25
Метки нет (Все метки)
Привет!
Возникла необходимость сохранения инфы в таблицы одновременно. Имеется форма, часть записей нужно сохранить в первую таблицу (category), часть во вторую (subcategory) + еще id тока что добавленной записи в таблице category и фотки сохраняются в 3-ью таблицу (photo) + также и сюда надо сохранить id последней записи таблицы category. Т.о., получается запись в таблице category и связанные с ней записи (через родительский id) в двух других таблицах. Можно конечно написать 3 запроса, получая через mysql_insert_id() id последней записи в таблице категорий, но хотелось бы одним запросом. в сети узнал, что такое можно сотворить с помощью триггеров, но с ними к сожалению не знаком. Можно ли решить эту задачу без триггеров одним запросом? Если нет, то прошу показать решение уже с помощью триггеров. Спасибо
0
|
|
| 05.01.2012, 05:55 | |
|
Ответы с готовыми решениями:
25
Как объединить несколько INSERT в один запрос
Как сделать INSERT запрос в связанные таблицы |
|
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
|
||||||||||||
| 05.01.2012, 06:28 | ||||||||||||
|
Можно сделать с помощью хранимых процедур. Из своего кода останется только вызвать нужную процедуру:
1
|
||||||||||||
|
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
|
||||
| 05.01.2012, 07:04 [ТС] | ||||
|
В таком случае можно написать запрос с помощью триггера? и на счет процедуры, м/у бегин и энд понятно вроеде что происходит, а что за
0
|
||||
|
111 / 112 / 18
Регистрация: 11.03.2011
Сообщений: 421
|
||||||||||
| 05.01.2012, 16:13 | ||||||||||
IN - переменная входящая (т.е. не возвращаемая, а получаемая), x - имя переменной в процедуре, INT - тип... собственно как в любом я.п.
2
|
||||||||||
|
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
|
|
| 05.01.2012, 18:09 [ТС] | |
|
ну эт понятно, не понятным остается как из пхп переменные передавать в хранимку., т.е., как мне вместо x,y,z... передать перемнные из скрипта?
еще, я тут почитал, вроде перемнные в хранимке создаются через DECLARE, или я чет не так понял?
0
|
|
|
65 / 65 / 6
Регистрация: 22.09.2010
Сообщений: 182
|
||||||
| 05.01.2012, 18:12 | ||||||
1
|
||||||
|
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
|
|
| 05.01.2012, 18:41 [ТС] | |
|
0
|
|
|
65 / 65 / 6
Регистрация: 22.09.2010
Сообщений: 182
|
|
| 05.01.2012, 18:43 | |
|
http://dev.mysql.com/doc/refma... edure.html
вот тут сказано IN (или OUT)
0
|
|
|
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
|
||||||||||||||||||||||
| 06.01.2012, 06:24 [ТС] | ||||||||||||||||||||||
|
мужуки, хранимку сделал (правда не проверил), но есть такое поле у меня (corder), там значения строятся не извне, а сами формируются таким образом
Как же теперь быть в хранимке, как мне передавать в поле corder главной таблицы такое вот значение? как понимаю надо создать переменную наподобие этой Добавлено через 3 часа 21 минуту не добвляются записи в БД ![]() вот хранимка
из-за чего это может быть? я думал, что процедура не связана с БД, но я сделал дамп БД и эта процедура там присутствует. не пойму в чм дело
0
|
||||||||||||||||||||||
|
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
|
||
| 06.01.2012, 07:31 | ||
|
1
|
||
|
65 / 65 / 6
Регистрация: 22.09.2010
Сообщений: 182
|
|
| 06.01.2012, 12:19 | |
|
1
|
|
|
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
|
||||||
| 06.01.2012, 19:58 [ТС] | ||||||
|
да, ошибка показывается теперь, дело было в типе передаваемой переменной, но теперь такая ошибка
0
|
||||||
|
111 / 112 / 18
Регистрация: 11.03.2011
Сообщений: 421
|
||
| 06.01.2012, 23:46 | ||
|
не хватает памяти, выделенной для потока, который выполняет обработку.
в сети пишут, что в MySQL можно увеличить объем выделяемой памяти: в my.cnf значение thread_stack т.е. если тебе не хватает 128К, то можно установить 256К, например. Добавлено через 1 минуту
1
|
||
|
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
|
|
| 07.01.2012, 01:49 [ТС] | |
|
м.., а куда это записать то?
у меня установлен Денвер, и где у него mysql хз и почему ему не хватает памяти, у меня таблицы небольшие - по 16, 13 и 6 столбцов.
0
|
|
|
111 / 112 / 18
Регистрация: 11.03.2011
Сообщений: 421
|
|
| 07.01.2012, 02:21 | |
|
в денвере, если правильно помню
"папка денвера\usr\local\mysql\" и тут в нем my.cnf открываем блокнотом, находим и меняем thread_stack а в "папка денвера\usr\local\mysql\bin\" mysqld.exe который можно запустить из консоли с параметрами и денвер наверное потом надо перезапустить
1
|
|
|
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
|
|
| 07.01.2012, 03:25 [ТС] | |
|
да, yes, получилось! :dance3:
Спасибо всем! ТОка вот не понял почему 128кб не хватало, вроде инфа небольшая передается на сервер На хосте тоже придется увеличивать память для мускула? Ребяты, такой вопрос по теме еще - вот третья таблица у меня (для дополнительных фоток) могут использовать только зарегисрированные пользователи, т.е., в обычной форме нет даже полей для дополнительных фоток, и в БД при сохранении записи в главную таблицу в третьей появляются пустые строки с id и parent_ext. Отсюда вопрос, мне отдельные хранимки написать для каждого случая (для зарег-х и незарег-х) или можно эту же переделать, чтобы она под каждую форму работала по разному?
0
|
|
|
111 / 112 / 18
Регистрация: 11.03.2011
Сообщений: 421
|
|||
| 07.01.2012, 03:32 | |||
|
язык позволяет.
1
|
|||
|
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
|
||||||||||||
| 07.01.2012, 07:45 [ТС] | ||||||||||||
Условие в хранимке
0
|
||||||||||||
|
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
|
|
| 07.01.2012, 07:56 | |
|
Love_and_Peace, Обзывать одинаковыми именами переменные, аргументы и поля таблиц - плохая идея.
0
|
|
|
960 / 801 / 85
Регистрация: 21.07.2010
Сообщений: 3,522
|
||||||||||||
| 07.01.2012, 08:23 [ТС] | ||||||||||||
|
все равно, вот поменял названия, точнее поменял названия в условии и добавил в список дополнительные перменные
0
|
||||||||||||
| 07.01.2012, 08:23 | |
|
Помогаю со студенческими работами здесь
20
Один запрос на 3 таблицы Один запрос на две таблицы Перенос параметра при INSERT в другой запрос INSERT Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes.
А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения
развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|