Autor Zpráva
Monic
Profil *
Chtěla bych provést kopii řádku v mySQL v tabulce CLANKY (id,nazev,kategorie,popis,......). ID je primární klíč, tak že při kopii bych CLANEK chtěla mít s dalším novým ID + u řádku KATEGORIE bych chtěla číslo změnit. Ostatní ať se překopíruje.

Jak to provést?
Taps
Profil
Monic:
mělo by to jít pomocí níže uvedeného příkazu (INSERT, SELECT)
INSERT INTO `clanky` (nazev,kategorie,popis)
SELECT  'test','3','popis'
FROM `clanky`
WHERE (id = '10' COLLATE utf8_bin);
Užitečným pomocníkem v této oblasti je adminer, který ti příkaz přímo zobrazí
Kajman
Profil
Taps:

Pro kopii je potřeba použít ty sloupce místo stringů
SELECT  `nazev`, 3 , `popis`

Monic:
Pokud potřebujete mít jeden článek ve více kategoriích, nemáte dobře navrhnutou strukturu tabulek. Na to se používá další vazební tabulka, aby text článku byl jen jednou a id článku se mohlo přidat k libovolnému počtu kategorií.
Monic
Profil *
Bohužel nefunguje :(
INSERT INTO clanky (kategorie) SELECT '$kategorie_new' FROM clanky WHERE id = '$id_kopie'

Sice se článek založí, ale neokopíruje to data, které se na řádku článku nachází :( tj. zbytek ... time, obsah, title a další věci, které si ukládám pro článek.
Taps
Profil
Monic:
musíš specifikovat sloupce, které chceš zkopírovat
Monic
Profil *
Tak že pokud bych chtěla změnit pouze kategorii a ostatní překopírovat, tak mySQL dotaz bude vypadat například takto?
INSERT INTO clanky (kategorie,nazev,obsah,time,robots) SELECT '$kategorie_new' FROM clanky WHERE id = '$id_kopie'
peta
Profil
Monic: INSERT vklada hodnoty, ktere mu tam napises. tys tam napsal pouze sloupec kategorie a tak se vlozil kategorie a ostatni nulove. Musis uvest nazvy vsech sloupcu, ktere vces vlozit a okopirovat. A misto hodnot, kopirovanych zapsat vlastni data. Viz taps/kajman.
INSERT INTO `clanky`
(nazev,kategorie,popis)
SELECT  nazev, '3' , popis -- zmenene cislo kategorie na 3
FROM `clanky`
WHERE (id = '10' COLLATE utf8_bin);
Radek 3,4,5 je klasicky SELECT.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: