phpMyAdmin kopírování do tabulek - duplicate entry

Co nejvíce stručné řešení pro vývojáře a linux administrátory

Na superuser.cz nenaleznete žádný zbytečný obsah, vždy se jde přímo k věci, denně se zde objevují nové problémy a jejich řešení...

Začít používat

phpMyAdmin kopírování do tabulek -…

03.05.2017 napsal Tony

Vyřešeno phpMyAdmin copy tables - duplicate entry 1 for key PRIMARY
A ještě když se snažím v MySQL databázi přes phpMyAdmin do tabulky1 doplnit data z tabulky2, tak na mě vyskočí chyba:
SQL query: Documentation

INSERT INTO `databaze`.`tabulka1` SELECT * FROM `databaze`.`tabulka2`

MySQL said: Documentation
#1062 - Duplicate entry '1' for key 'PRIMARY' 
Nejlépe hodnocení uživatelé
Hanz

Počet UP: 5084

React: 212

Rusty

Počet UP: 2347

React: 98

OL3G

Počet UP: 1637

React: 59

SYSTEM

Počet UP: 436

React: 23

Strosmajer

Počet UP: 492

React: 22

Oxytocin

Počet UP: 296

React: 16

Hyacint

Počet UP: 37

React: 11

RE: phpMyAdmin kopírování tabulek…

03.05.2017 odpověděl Hanz

Zkontrolováno

Proveďte to takto, tabulka2 se překopíruje do dočasné tabulky temp, id se nastaví na NULL a pak se z tabulky temp obsah přidá to tabulka1:
CREATE TEMPORARY TABLE temp SELECT * FROM `tabulka2`;
UPDATE temp SET id = NULL;
INSERT INTO tabulka1 SELECT * FROM temp;
DROP TEMPORARY TABLE IF EXISTS temp;

RE: phpMyAdmin kopírování do…

07.07.2017 odpověděl Rusty

Zkontrolováno


21
Můžete na to jít také tak, že specifikujete sloupce, které chcete překopírovat a pak nemusíte řešit kolici klíčů id:

INSERT INTO tabulka2 (data,datum) SELECT data,datum FROM tabulka1

nebo lze kopírovat mezi databázemi
INSERT INTO db1.tabulka2 (data,datum) SELECT data,datum FROM db2.tabulka1
Tento web používá k poskytování služeb, personalizaci reklam a analýze návštěvnosti soubory cookie. Používáním tohoto webu s tím souhlasíte. Další informace