![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Копия подчиненных записей [MySQL]
oji © (2006-07-07 09:19:00)Подскажите, как создать новую запись таким образом, чтобы в ней появилась копия из одной подчиненной таблицы предыдущей записи.
Например, есть:
Table Record:
ID=65535
Date=7.7.2006
Text='123'
Subtable Records:
ID=1
SubID=65535
Text='1234'
---
ID=2
SubID=65535
Text='5678'
Нужно чтобы при добавлении в Table записи 65536 с ней добавлялись в SubTable копии записей с SubID=65535, с заменой их на 65536.
Надеюсь, достаточно подробно объяснил.
Инструментарий: BDS2006, MyComponents, ehLib, FR.
oji (2006-07-10 02:10:00) [1]Johnmen, спасибо, оно самое. Как-то даже в голову не пришло. :)
> Desdechado © (07.07.06 10:56) [5]
>
> oji (07.07.06 09:56) [3]
> Ответ уже дан в [2].
Разница "постов" в пару минут. Отправил ответ и ушел на выходные домой. Вернулся, а, оказывается, мне ответили еще раньше второго объяснения. :))
SerJaNT (2006-07-07 11:22:00) [2]Короче, геморойное это дело. Тут надо вложенные условия чтоли использовать...Например, вложенные select'ы и изменять через Update
Desdechado (2006-07-07 11:19:00) [3]SerJaNT © (07.07.06 11:13) [8]
Снова тормозишь.
А если, как я уже говорил, изменяется только количество покупаемого по некоторым позициям?
SerJaNT (2006-07-07 11:13:00) [4]
> Не проще ли скопировать предыдущий заказ и убрать из него
> ненужное?
Это можно сделать и так
SELECT * FROM ... WHERE ... <> ...
Desdechado (2006-07-07 11:10:00) [5]SerJaNT © (07.07.06 11:05) [6]
Не тормози.
Например, есть типовой заказ на покупку чего-то (позиций 200), который присылается в магазин раз в месяц. И каждый месяц в нем есть небольщое отличие: добавили пару пунктов, изменили количество для чего-то, решили сегодня не брать еще что-то.
Итого - совпадение с предыдущим заказом по 180 позициям. Ты их хочешь заставить вдалбливать заново?
Не проще ли скопировать предыдущий заказ и убрать из него ненужное?
SerJaNT (2006-07-07 11:05:00) [6]
> Например, похожие объекты, отличающиеся парой-тройкой полей
> из 50-100 штук. Чтоб заново не забивать данные.
Нихрена не пойму, для чего это может понадобиться??
Desdechado (2006-07-07 10:56:00) [7]oji (07.07.06 09:56) [3]
Ответ уже дан в [2].
SerJaNT © (07.07.06 10:52) [4]
Например, похожие объекты, отличающиеся парой-тройкой полей из 50-100 штук. Чтоб заново не забивать данные.
SerJaNT (2006-07-07 10:52:00) [8]Если не секрет, скажи, джля чего это? Что ты хочешь сделать, может все граздо проще...
oji (2006-07-07 09:56:00) [9]Есть главная таблица. Упрощенная структура (достаточно для объяснения):
ID --- Autoincrement PK
Date --- Date
Text --- Varchar(50)
Есть несколько связанных с ней таблиц. Нужна только одна. Пусть ее вид будет следующим:
ID --- Autoincrement PK
SubID --- int(16)
Text --- Varchar(50)
Когда в главную таблицу добавляется запись, то ищется предыдущая (по дате) и по ней нужно выйти на записи в связанной таблице и продублировать их для текущей.
Johnmen (2006-07-07 09:54:00) [10]INSERT INTO ... SELECT FROM ... WHERE SubID=65535
SerJaNT (2006-07-07 09:25:00) [11]Ничего не понял. 8-)
Объясни поподробнее, что куда добавляется и что где и на что должно изменяться