Diskuze: Vložení dat z table1 do table2
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 7 zpráv z 7.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.
Insert into table2 (zde bude seznam sloupcu v table1)
Select (seznam_sloupcu) from table1
Seznam sloupcu získáš např tak že v SQL managment studiu potáhneš složku columns dane tabulky do editoru na místo, kde jsou sloupce + je potřeba mít nastavené nove sloupce v tabulka2 na NULL.
Ahoj, půjdu na to trošku z jiné strany. Je opravdu nutné mít v databázi stejná data dvakrát? Dle mého názoru by bylo lepší řešení v t2 udělat jen sloupce které jsou oproti t1 navíc a do jednoho sloupce si uložit PK záznamu z t1 ke kterému daný řádek z t2 patří a pak si to jen najoinovat k sobě (vytvořit view).
Lze to provést nějakým jednoduchým příkazem?
Nie, neviem aky programovaci jazyk pouzivas ale budes si musiet napisat cyklus, ktory precita data z table1 a najde riadok v table2 kde ho updatne. V opacnom pripade ho insertne. Ak su v tabulke table2 defaultne hodnoty stlpcov nastavene ako NULL, tak nemusis nic vkladat do tych riadkov, SQL sam vlozi NULL hodnotu.
Pleteš se, samozřejmě že to jde. Jak jsem psal výše, v SQL je na to příkaz INSERT SELECT. Kde selectem si vybereš hodnoty z tabulky (i více) a poté to automaticky insertne do vybrané tabulky. Jde mu jen o kopii dat z tab1 do tab2, tudíž tohle je nejjednodušší a nejrychlejší způsob. Žádný cyklus(cursor) na to potřeba není
Asi mas pravdu
INSERT INTO destTable
SELECT Field1,Field2,Field3,...
FROM srcTable
WHERE NOT EXISTS(SELECT *
FROM destTable
WHERE (srcTable.Field1=destTable.Field1 and
SrcTable.Field2=DestTable.Field2...etc.)
)
Zobrazeno 7 zpráv z 7.