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

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

Как на SQL создать копию текущей записи ? [D5, IB6.x, Firebird]


rex ©   (2003-04-17 08:49:00) 

Вроде всё просто, но мешает первичный ключ.

insert into SIF (mykey,a1,a2.....a33)
select * from SIF where mykey=24

Соответственно на подобное машина ругается.
Как создать копию записи нормально ?


rex   (2003-04-17 09:29:00) [1]

И всем остальным тоже спасибо :)


rex   (2003-04-17 09:28:00) [2]

To ЮЮ
Большое спасибо. Всё заработало !


Johnmen   (2003-04-17 09:27:00) [3]

Еще вариант...:)))))))

insert into SIF (mykey,a1,a2.....a33)
select (gen_id(mygenname,1),a1,a2.....a33) from SIF where mykey=24


Alexey Bednov   (2003-04-17 09:18:00) [4]

Поставить триггер before insert - например, так:

NEW.MYKEY=GEN_ID(GEN_NAME, 1)


ЮЮ   (2003-04-17 08:58:00) [5]

Если его значение для новой записи определяется на сервере, то исключить из запроса:
insert into SIF (a1,a2.....a33)
select a1,a2.....a33 from SIF where mykey=24

Если же на клиенте, то поставить нужное значение:
insert into SIF (mykey,a1,a2.....a33)
select :mykey, a1,a2.....a33 from SIF where mykey=24


Наверх

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