Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Kopírování řádků v MySQL

Ahoj, mám dotaz...

Mám db ve které je provázáno více tabulek přes foreign key.

Je to databáze úloh, každá úloha (nejvyšší tabulka) má své nastavení a pod úlohy (další tabulky spojené přes foreign key).

Chtěl bych implementovat funkci OPAKOVAT úlohu.

Představuji si to nějak tak, že se daná úloha, včetně jejich podtabulek "duplikuje".

Je pro to nějaká možnost, jak to udělat, aniž bych musel vše selectovat a vkládat po jednom?

Díky a snad je to srozumitelné.

Předmět Autor Datum
Proč duplikovat, když se jedná o opakování? Dle normalizačních pravidel bys měl maximálně vytvořit n…
touchwood 09.09.2017 10:38
touchwood
SQL server v sobě nemá mechanizmus na duplikaci záznamů. Takže nezbývá než insert into ... select <s…
Jan Fiala 09.09.2017 11:26
Jan Fiala
Nevím, zda ti to pomůže, ale můžeš zkusit skvělý nástroj adminer (adminer editor) českého původu pro… poslední
lekt0r 13.09.2017 12:00
lekt0r

Proč duplikovat, když se jedná o opakování? Dle normalizačních pravidel bys měl maximálně vytvořit nový "master" záznam a odkázat jej na předchozí data, když se jedná o opakování... (toto samozřejmě není nejvýhodnější řešení, ale při neznalosti kompletní struktury a procesu se nedá poradit konkrétnější řešení).

SQL server v sobě nemá mechanizmus na duplikaci záznamů.
Takže nezbývá než
insert into ... select <seznam poli> from
Právě proto, že každá úloha pro duplikaci je jiná - více tabulek, autoincrement pole, ... tak není možné mít nějaký obecný mechanizmus. Je to na autorovi aplikace, aby si tohle ošetřil. Obvykle se to řeší v rámci uložené procedury pod transakcí, abys měl zajištěno, že jsi opravdu vložil záznam na všechna místa, kam patří.

Nevím, zda ti to pomůže, ale můžeš zkusit skvělý nástroj adminer (adminer editor) českého původu pro php, v něm se hezky dá spravovat db a samozřejmě ti to ukazuje i vymšlené/provedené sql statement.

Zpět do poradny Odpovědět na původní otázku Nahoru