
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é.
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.