univerzalna duplikacia zaznamov v jednej tabulke

10 views
Skip to first unread message

Peter Turčan

unread,
Dec 10, 2022, 6:10:22 AM12/10/22
to Firebird (CZ)
Ahojte,

potrebujem vytvorit kopiu zaznamov v jednej tabulke s inymi ID do tej istej tabulky
jasne, toto funguje (priklad):

insert into TAB (idFirma, meno,adresa,krajina) select {0}, meno,adresa,krajina from TAB where idFirma= {1}

v tabulke je aj PK stlpec ID plneny automaticky.
a {0} je nejaka hodnota na tvrdo, kde povodne zaznamy ma nejaky 'idFirma' a novy maju ine 'idFirma' ale zvysok rovnaky
teda kopiruju sa zaznamy z idFirma = {1} na idFirma={0}

problem je, ze realne mam stlpcov 20 a aby sa nestalo, ze zabudnem pridat do toho insertu novy stlpec (co sa mi uz stalo)

existuje nejaka moznost toto spravit jednoduchsie bez ohladu na pocet stlpcov?
tak aby som nemusel explicitne vymenovat kazdy stlpec.

jasne
insert into TAB select * from TAB where idFirma= {1}
je moznost, ale to nezmeni zaznam idFirma, co potrebujem a navyse to zahrnie aj primarny kluc, co asi nie je dobre...

este mozno zistit stlpce v tabulke a ten SQL vyskladat automaticky... ale to mi pripada zbytocne zlozite

dakujem
P

Jiří Činčura

unread,
Dec 10, 2022, 10:01:48 AM12/10/22
to fireb...@googlegroups.com
> insert into TAB select * from TAB where idFirma= {1}
> je moznost, ale to nezmeni zaznam idFirma, co potrebujem a navyse to
> zahrnie aj primarny kluc, co asi nie je dobre...

Napada me jedine do toho pridat trigger. Nastavit si pred spustenim kontextovou promennou s novou hodnotou `idFirma` a trigger by to pak zmenil. Pokud by kontextova promenna nebyla nastavena, nic by nedelal. Ale pripada mi to stejne dost kostrbate.

> este mozno zistit stlpce v tabulke a ten SQL vyskladat automaticky...
> ale to mi pripada zbytocne zlozite

Zas tak slozite to neni. Ale hlavne to bude robustni i flexibilni.

--
Mgr. Jiří Činčura
https://www.tabsoverspaces.com/

Reply all
Reply to author
Forward
0 new messages