|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
Здравствуйте! Понимаю вопрос фундаментальный, но не могу сам его решит. Необходимо вставить данные в главную таблицу, получить id, и вставить его в подчиненную. Пробовал вот так: Код: sql 1. 2. 3. 4. 5.
но проблема в том что строк может быть +1000 и тут я естественно попадаю на ограничения, разделить запрос на несколько не могу(если есть ошибка то надо отменять все записи) как быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2016, 14:14 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
fedormooreразделить запрос на несколько не могу(если есть ошибка то надо отменять все записи) как быть? Прочитать про транзакции и чем они отличаются от запросов. Ну и savepoints до кучи. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2016, 14:18 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
Hello, Fedormoore! You wrote on 13 октября 2016 г. 14:19:04: Fedormoore> разделить запрос на несколько не могуиз-за? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2016, 14:19 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
МимопроходящийHello, Fedormoore! You wrote on 13 октября 2016 г. 14:19:04: Fedormoore> разделить запрос на несколько не могуиз-за? да мне не лень, я повторюсь - если есть ошибка то надо отменять все записи ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2016, 14:24 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
Hello, Fedormoore! You wrote on 13 октября 2016 г. 14:27:35: Fedormoore> да мне не лень, я повторюсь - если есть ошибка то надо отменять все записиа кто мешает? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2016, 14:28 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
Мимопроходящийа кто мешает? Ну не знает пациент о транзакциях, чего пристал?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2016, 14:34 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
Hello, Dimitry Sibiryakov! You wrote on 13 октября 2016 г. 14:37:45: Dimitry Sibiryakov> Ну не знает пациент о транзакциях, чего пристал?..а мож у него клиентская библиотека шибко замороченная неестественным интеллектом с автокоммитом Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2016, 14:39 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
Мимопроходящийа мож у него клиентская библиотека шибко замороченная неестественным интеллектом с автокоммитом Дык проблема-то не в потенциальном наличии неестественного интеллекта у библиотеки, а кинетическом отсутствии естественного... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2016, 14:41 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
я так рад дать вам повод побздеть, а то смотрю парни сидят, скучаю, и работать вроде не охота и поговорить ни о чем.. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2016, 14:44 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
да шо ж за день такой сегодня! как-то кучно пошли... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2016, 14:47 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
fedormooreя так рад дать вам повод побздеть, а то смотрю парни сидят, скучаю, и работать вроде не охота и поговорить ни о чем.. Слово "транзакция" прозвучало уже черте-сколько раз. Ты бы прочитал что это такое для начала. А потом подумал, как оно соотносится с тем, что тебе надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2016, 14:48 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
Мимопроходящий, календарь сбился наверное. Хотя у меня вроде четверг. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2016, 14:50 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
а, сегодня ж 13-е! хоть и не пятница Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2016, 14:53 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4.
Это подойдет? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2016, 14:54 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
crazypiggy Код: sql 1. 2. 3. 4.
Это подойдет? спасибо, но нет, это тоже самое что и у меня ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2016, 14:57 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
Извините не все прочел. Вам действительно необходимо прочитать о транзакциях. Задача не сложная ... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2016, 15:00 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
fedormoore, ничего проще? Вставляй в detail таблицу и всё! Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.10.2016, 23:31 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
fedormoore, вообще-то такое надо решать так: Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
С помощью какого инструмента ты собираешь выражение и его выполняешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 07:14 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
MikeDD, IBExpert (2012.5.19.1), редактор скриптов ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 08:21 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
rdb_dev, это такой "тонкий" троллинг ТС или ты действительно не понимаешь что чепуху написал? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 08:33 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
Симонов Денисrdb_dev, это такой "тонкий" троллинг ТС или ты действительно не понимаешь что чепуху написал?Ну, маленько накосячил в триггере detail. Думаю, ТС поподробнее изучит триггеры и найдет косячок. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 09:04 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
rdb_dev, маленько?! а по мне так это луче "троллингом" назвать, твой триггер я понял ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 09:09 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
fedormoore, Ну а теперь пойми, что такое "транзакция", и почему именно ей принимают/откатывают изменения. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 09:32 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
WildSery, я имею представление что такое транзакция, все так настойчиво мне советуют почитать, что я сам начал сомневаться и перечитал еще раз и про транзакцию и про запросы, но не вижу я связи как мне это может помочь сохранить ссылочную целостность. У меня есть два варианта вставки данных, 1 - когда я знаю id master и могу его вставить в datail 2 - когда я не знаю id master, но мне нужно его узнать для того чтобы вставить в datail. Вы(users) 15 сообщений в теме написали и полный бред, то про пятницу то про 13, вам если конкретно написать не чего то не пишите, а то как бабки на базаре ничего путнего не сказала зато выговорилась. ПРОСТИТЕ НАКИПЕЛО... ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 09:44 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
fedormoorerdb_dev, маленько?! а по мне так это луче "троллингом" назвать, твой триггер я понял"Маленько" - понятие субъективное. Троллига там нет, а я опять прочел лишь первую половину вопроса. :) Со второй половиной всё еще проще - стартуешь write транзакцию , накидываешь в БД строки (хоть по одной, хоть по десять) в try блоке и если всё хорошо, делаешь транзакции Commit. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 09:50 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
fedormooreУ меня есть два варианта вставки данных, 1 - когда я знаю id master и могу его вставить в datail 2 - когда я не знаю id master, но мне нужно его узнать для того чтобы вставить в datail.И в чем именно затруднение? В получении id, которого не знаешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 09:52 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
fedormoore, вот это будет работать только если коннект всего один. Если в базе кто-то ещё делает вставки записей помимо вашего единственного скрипта, то способ не годится. Код: sql 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 09:52 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
fedormooreПРОСТИТЕ НАКИПЕЛО...Это не мы такие... Как говорится - "Правильно поставленный вопрос - половина ответа". ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 09:55 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
rdb_dev, да, не знаю как получить. Пробовал использовать execute block (есть возможность объявить переменную далее после вставки данных вернуть id master, присвоит переменной, использовать значение переменной для вставки в datail) но столкнулся с ограничениями ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 10:10 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
Симонов Денис, спасибо за совет, но про это я тоже читал, что при многопользовательском режиме будет косяк ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 10:12 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
fedormooreне вижу я связи как мне это может помочь сохранить ссылочную целостность.Транзакция - это вообще единственная вещь, которая может сохранить ссылочную целостность. Подсказка - в скрипте IBExpert выключи автокоммит после каждого statement, выключи продолжение выполнения скрипта после ошибки. И "не бзди". ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 10:13 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
WildSery, выключил, как теперь получить id master? ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 10:18 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
fedormoore, вот тебе ещё рецепт Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
gtt должна быть по структуре аналогична detail и иметь тип ON COMMIT DELETE ROWS. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 10:21 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
Применить GUID для ID или выделить непересекающиеся диапазоны? Коль уж хочется всенепременнейше скриптом, а не куском программы, где можно передать параметром вновь сгенерированный id. Честно я пока не вижу никаких затруднений, "нафтыкать" в базу в одной транзакции тыщонку-другую записей, да тьфу, размазать и забыть. Видимо поэтому и "накипело". ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 10:37 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
fedormoorerdb_dev, да, не знаю как получить.Я, конечно, не экстрасенс, но могу предположить, что ты пытаешься сделать нечто вроде импорта/экспорта данных из одной базы в другую с определением соответствия по UID. Нет ничего проще! Создаешь две временные таблицы с временем жизни строк в пределах транзакции (к примеру master_import и detail_import), в которые ты будешь накидывать строки импорта без изменений. В двух вложенных циклах FOR SELECT INTO DO хранимой процедуры крутишь эти данные временных таблиц. Во внешнем цикле делаешь добавление в таблицу master с получением нового ID, во вложенном цикле делаешь добавление в detail с полученным из master идентификатором. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 10:39 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
fedormoore, ну тогда пишешь скрипт что типа такого: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 11:11 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
MikeDD, кстати нормальный вариант ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 11:12 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
fedormooreстолкнулся с ограничениями А тебе так критично эту операцию оформлять именно как скрипт?.. Используй контекстные переменные. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 11:57 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Контекстные, они какбе, и в скрипте никуда не деваются. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 12:15 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
WildSeryКонтекстные, они какбе, и в скрипте никуда не деваются. Они как бэ только в скрипте и имеют смысл. В остальных случаях - руки отрывать. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 12:29 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, Многие расстроятся. Таблоид, например. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 12:59 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
WildSeryТаблоид, например. Почему? Он же как раз исключительно скриптами всё и делает. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 13:03 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
Hello, Wildsery! You wrote on 14 октября 2016 г. 13:03:07: Wildsery> Многие расстроятся. Таблоид, например. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 13:04 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovПочему? Он же как раз исключительно скриптами всё и делает.Я не знаю, как он на самом деле делает, но сюда выложено множество советов и решений, использующих контекстные переменные ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 15:45 |
|
одновременная вставка данных в master и detail
|
|||
---|---|---|---|
#18+
Dimitry SibiryakovОни как бэ только в скрипте и имеют смысл. В остальных случаях - руки отрывать. А почему только в скриптах? Почему не стоит, например, в процедурах? Вроде здорово - такая видимая всем объектам глобальная переменная. ... |
|||
:
Нравится:
Не нравится:
|
|||
14.10.2016, 15:49 |
|
|
start [/forum/topic.php?all=1&fid=40&tid=1561919]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 280ms |
total: | 430ms |
0 / 0 |