lukaszm89
31.01.2013, 10:02:22
Witam, problem tego typu że mam 2 tabele i chce je połączyć, ale występują te same ID, więc potrzebuję w tabeli2 zmienić auto increment od wartości 316882. Wiem jak ustawić, aby od następnej wartości naliczało takie ID, ale potrzebuje to zrobić dla rekordów już istniejących. Przykładowo są ID 1,2,3,4,5,6...a chcę to zmienić na 316882, 316883, itd....żebym mógł wtedy te 2 tabele połączyć. Jest taka możliwość?
Crozin
31.01.2013, 10:10:13
UPDATE tbl_name SET id = id + 300000;
Tyle powinno wystarczyć. Pozostaje jednak problem kluczy obcych. Tutaj są dwie możliwości:
1. Ręczna aktualizacja na podobnej zasadzie co w przypadku tabeli głównej.
2. Jeżeli przy definicji klucza obecnego podałeś
ON UPDATE CASCADE aktualizacja nastąpi automatycznie.
lukaszm89
31.01.2013, 10:22:21
Dzięki wielkie! Wszystko działa
skowron-line
31.01.2013, 11:40:05
A czy nie lepiej użyć składni insert select która przeniesie Ci rekordy z jednej tabeli do drugiej i nada im nowe ID zgodnie z auto_increment.
INSERT INTO mytable2 (id, name, `key`)
SELECT id, name, `key` FROM mytable b