Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] [mysql] kopiowanie między tabelami
Forum PHP.pl > Forum > Przedszkole
alogator
witam!
Kopiuje między dwoma tabelami dane
  1. <?php
  2. $sql = "INSERT INTO A(id, nazwa) SELECT id, nazwa FROM B";
  3. if (mysql_query($sql))
  4.  
  5. {
  6. echo "skopiowano wpisy";
  7. } else {
  8. echo "nie skopiowano wpisów";
  9. }
  10. ?>

i to bez problemu działa - chciałbym tylko aby nie kopiował mi on istniejących już wpisów - co zrobić??
arecki
Możesz użyć zamiast INSERT INTO instrukcji REPLACE INTO ale ona nie działa tak że kopiuje tylko nowe ale kopiuje nowe i zastępuje istniejące. Zawsze to lepsze niż podwójne wpisy smile.gif
alogator
no tak jest to jakies rozwiązanie - tyle że jeżeli dokonam juz jakiejś modyfikacji w wierszu to REPLACE nadpiszem i te dane i ta modyfikacja nie bedzie widoczna sad.gif
arecki
To może coś takiego:
zrób sobie w tabeli B pole po którym będziesz identyfikował czy dane pole już zostało skopiowane do A czy nie i kopiuj tylko te dane które to pole będą miały ustawione na true bądź false w zależności od tego jak to sobie obmyślisz.
alogator
hmmm... a da sie tak zrobić żeby nadpisywał tylko jedną kolumne np w tym wypadku id a reszte pozostawiał niezmienione o ile istnieją - a wszystko czeog nie będzie to doda jako nowy wiersz?
SongoQ
  1. INSERT INTO A(id, nazwa) SELECT id, nazwa FROM B WHERE id NOT IN (SELECT id FROM A)
alogator
niestety mi to nie działa w ten sposób.....
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.