Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> INSERT wielu wierszy ON DUPLICATE
Mauaku
post
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 23.03.2011

Ostrzeżenie: (0%)
-----


Witam na forum.

Mam taką tabelę w bazie:
  1. CREATE TABLE `table` (
  2. `id` int(11) NOT NULL,
  3. `id2` int(11) NOT NULL,
  4. `kol1` tinyint(3) UNSIGNED NOT NULL,
  5. `kol2` tinyint(3) UNSIGNED NOT NULL,
  6. ...
  7. `koln` tinyint(3) UNSIGNED NOT NULL,
  8. UNIQUE KEY `as` (`id`,`id2`),
  9. KEY `id` (`id`),
  10. KEY `id2` (`id2`)
  11. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;


W pętli w php tworzę sobie Insert o mniej więcej takiej treści:
  1. INSERT INTO TABLE VALUES
  2. (id,id2,kol1...koln),(id,id2,kol1...koln),...(id,id2,kol1...koln)


Zanim jednak dodam te rekordy kasuję ich wcześniejszą instancję, jeżeli jest:
  1. DELETE FROM TABLE WHERE
  2. (id1=x1 AND id2=y1) OR (id1=x1 AND id2=y2) OR (id1=x2 AND id2=y3) OR (id1=x2 AND id2=y4) OR ... OR (id1=xn AND id2=ym)


Pytanie: Czy można wykorzystać w tej sytuacji polecenie ON DUPLICATE KEY UPDATE, abym nie musiał usuwać tych rekordów wcześniej i odciążyć serwer?

Pozdrawiam

Ten post edytował Mauaku 23.03.2011, 10:48:01
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
wookieb
post
Post #2





Grupa: Moderatorzy
Postów: 8 989
Pomógł: 1550
Dołączył: 8.08.2008
Skąd: Słupsk/Gdańsk




Spróbuj coś takiego
  1. INSERT INTO TABLE
  2. (id1, id2, kol1, kol2)
  3. VALUES
  4. (1, 1, 2, 3),
  5. (2, 2, 3, 4),
  6. ...
  7. ON DUPLICATE KEY UPDATE
  8. kol1 = VALUES(kol1), kol2 = VALUES(kol2)


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 04:58