Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Копия подчиненных записей [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-)
Объясни поподробнее, что куда добавляется и что где и на что должно изменяться


Наверх

Титульная страница Поиск, карта сайта Написать письмо