![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как на 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