br-design.pl
7.04.2008, 09:59:53
mam taki problem, wyeksportowałem dane przez phpmyadmina z jednej tabeli i chce je wstawić do tej samej tabeli w innej bazie, problem w tym że ta baza ma już rekordy i przy imporcie dostaje błąd że pokrywają się klucze ID. Co mogę zrobić aby mysql ignorował podane mu wartosci id i nadal importowanych rekordą swoje klucze.
wiem że są takie opcje jak ignore i replace, ale nie o to mi chodzi, nie chce podmieniać rekordów ani ich ignorować, chce po prostu dostawić nowe.
webdice
7.04.2008, 12:34:28
Napisz sobie mały skrypt który pozmienia
ID na wartość NULL.
INSERT INTO `table` VALUES (1, ...);
INSERT INTO `table` VALUES (2, ...);
na
INSERT INTO `table` VALUES (NULL, ...);
INSERT INTO `table` VALUES (NULL, ...);
br-design.pl
7.04.2008, 13:28:41
Dzięks! Ale sam phpmyadmin nie ma jakiejś magicznej opcji która to robi?
webdice
7.04.2008, 13:46:43
Z tego co wiem to nie ma. Być może są narzędzia do tego, ale na pewno zrobisz to szybciej po mojemu, niż coś znajdziesz.
osiris
7.04.2008, 19:32:49
Witam,
t1 - tabela do ktorej chcesz dodac rekordy
1. Stworz tabele tymczasowa o takiej samej strukturze jak t1
1. Zaimportuj do tymczasowej tabeli wyeksportowane dane.
2. SET @i = (SELECT MAX(id) FROM t1);
3. UPDATE tymczasowa SET id = @i := @i+1;
4. INSERT INTO t1 (SELECT * FROM tymczasowa)
5. usun tymczasowa.
Pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.