SQL - jak zkopírovat řádek do insertu v SQL tabulce jednoduše
Dobrý den, lze nějak jednoduše provést zkopírování nějakého řádku v SQL tabulce tak, že bych nemusel specifikovat všechny hodnoty (values)? Nyní to dělám právě pomocí SQL poddotazu (subquery), kde ty všechny values musím vyjmenovat a to je moc dlouhé. Díky za radu
Dobrý den,
ano, zkopírování všech hodnot z nějakého řádku v SQL tabulce do následného INSERTu lze vyřešit pomocí dočasné tabulky (TEMPORARY TABLE), tím nemusíte ty hodnoty (VALUES) specifikovat. V tomto přikladu máte tabulku "tabulka" a chcete zkopírovat (INSERTovat) záznam s id = 7 do stejné tabulky:
Stejný dotaz už zde byl jednou řešen: phpMyAdmin kopírování do tabulek - duplicate entry
ODPOVĚĎ
Dobrý den,
ano, zkopírování všech hodnot z nějakého řádku v SQL tabulce do následného INSERTu lze vyřešit pomocí dočasné tabulky (TEMPORARY TABLE), tím nemusíte ty hodnoty (VALUES) specifikovat. V tomto přikladu máte tabulku "tabulka" a chcete zkopírovat (INSERTovat) záznam s id = 7 do stejné tabulky:
CREATE TEMPORARY TABLE docasna_tabulka SELECT * FROM tabulka WHERE id = 7;
UPDATE docasna_tabulka SET id = NULL;
INSERT INTO tabulka SELECT * FROM docasna_tabulka;
DROP TEMPORARY TABLE IF EXISTS docasna_tabulka;
Stejný dotaz už zde byl jednou řešen: phpMyAdmin kopírování do tabulek - duplicate entry
Další možnost
SELECT *
INTO tabulka2
FROM tabulka1;