MYSQL táblában minden adatsor azonosítójának növelése
Sziasztok!
Szeretnék egy termékek táblát átvinni egyik adatbázisból, a másik adatbázisba. Majd a másik adatábzisban ahova átvittem a táblát beolvasztani egy ott lévő termékek táblába.
Az oszlopok stimmelnek, mert ugye anélkül nem működne a dolog. Egyetlen probléma, hogy ID egyezések lennének.
Arra gondoltam, hogy esetleg ideiglenesen megszüntetni a PRIMARY KEY tulajdonságát az ID-nak és generáltatni új ID-kat abba a táblába egy ciklus segítségével.
Teszem azt a táblában ahova beakarom ovasztani az újat a Termékek ID-ja 350-ig megy. És csinálni egy olyan ciklust ami az importálandó táblában átnevezi az ID-ket 351-től és minden további rekordnak ad egy egyel nagyobb ID-t egészen addig ahány rekord van abban a táblában.
Remélem érthetően leírtam a problémámat, vagy ha esetleg van valakinek egy kézzelfekvőbb megoldása azokat is szivesen fogadom.
Válaszaitokat előre is köszönöm!
■ Szeretnék egy termékek táblát átvinni egyik adatbázisból, a másik adatbázisba. Majd a másik adatábzisban ahova átvittem a táblát beolvasztani egy ott lévő termékek táblába.
Az oszlopok stimmelnek, mert ugye anélkül nem működne a dolog. Egyetlen probléma, hogy ID egyezések lennének.
Arra gondoltam, hogy esetleg ideiglenesen megszüntetni a PRIMARY KEY tulajdonságát az ID-nak és generáltatni új ID-kat abba a táblába egy ciklus segítségével.
Teszem azt a táblában ahova beakarom ovasztani az újat a Termékek ID-ja 350-ig megy. És csinálni egy olyan ciklust ami az importálandó táblában átnevezi az ID-ket 351-től és minden további rekordnak ad egy egyel nagyobb ID-t egészen addig ahány rekord van abban a táblában.
Remélem érthetően leírtam a problémámat, vagy ha esetleg van valakinek egy kézzelfekvőbb megoldása azokat is szivesen fogadom.
Válaszaitokat előre is köszönöm!
Különbséggel növeld az ID-ket
UPDATE forrástábla SET ID = ID + 350
Auto increment
sikerült
Még egy problémám van ami miatt nem tudom egymásba ágyazni rendesen a táblát.
A két táblában az oszlopok sorrendje nem egyezik balról jobbra és ezért nem a megfelelő helyre kerülnek az adatok. Tudok esetleg valahogy változtatni az oszlopok sorrendjén?
alter table
ha jól értettem a kérdést...
forrás: tabla1 (id, oszlop3, oszlop1, oszlop2)
cél: tabla2 (id, oszlop1, oszlop2, oszlop3)
(ahol az azonos nevő oszlopok jelentik a párokat)
Ha a céltáblán van auto_increment, akkor oszlopcserélgetve:
INSERT INTO tabla2 (oszlop1, oszlop2, oszlop3) SELECT oszlop1, oszlop2, oszlop3 FROM tabla1;
Ha a céltáblán nincs auto_increment: (maxid helyére a tabla2 jelenlegi legnagyobb id-ja kerül)
INSERT INTO tabla2 (id, oszlop1, oszlop2, oszlop3) SELECT id+maxid, oszlop1, oszlop2, oszlop3 FROM tabla1;
http://dev.mysql.com/doc/refman/5.0/en/insert.html