I'm executing on master a long and complicated query such:
UPDATE (lots of tables, lots of LEFT JOIN) SET ... WHERE .
The query updates i.e. 3816 rows.
The query DOES replicate do master's and slave's binary log.
But it DOES NOT execute on slave. 3816 rows are not updated on slave
and slave behaves like there was nothing more to execute.
I do `mysqlbinlog slave-log` on slave and see this query in log.
Next, I copy & paste to MySQL client and execute this query manualy
on slave. And... 3816 rows affected.
I'm trying to isolate problem. MySQL 4.1.7-standard-binary, Linux
x86. In MySQL 4.0 everything this was for sure okey!
The query:
UPDATE tKsidata, tKsiabeksiazki
LEFT JOIN tKsiabeautorzy as a1 ON (tKsiabeksiazki.KSI=a1.KSI AND
a1.LP='1' AND a1.GR='0')
LEFT JOIN tKsiabeautorzy as a2 ON (tKsiabeksiazki.KSI=a2.KSI AND
a2.LP='2' AND a2.GR='0')
LEFT JOIN tKsiabeautorzy as a3 ON (tKsiabeksiazki.KSI=a3.KSI AND
a3.LP='3' AND a3.GR='0')
LEFT JOIN tKsigdanskksiazki ON
tKsiabeksiazki.KSI=tKsigdanskksiazki.KSI
LEFT JOIN tKsigliwiceksiazki ON
tKsiabeksiazki.KSI=tKsigliwiceksiazki.KSI
LEFT JOIN tKsikrakowksiazki ON
tKsiabeksiazki.KSI=tKsikrakowksiazki.KSI
LEFT JOIN tKsiwysksiazki ON tKsiabeksiazki.KSI=tKsiwysksiazki.KSI
LEFT JOIN tKsikolejowaksiazki ON
tKsiabeksiazki.KSI=tKsikolejowaksiazki.KSI
LEFT JOIN tBooksextra ON tKsiabeksiazki.KSI=tBooksextra.KSI
LEFT JOIN tUnits ON tKsiabeksiazki.DZIAL=tUnits.DZIAL
LEFT JOIN tSeries ON tKsiabeksiazki.SERIA=tSeries.SERIA
LEFT JOIN tCovers ON tKsiabeksiazki.KSI=tCovers.KSI, tGrupy
SET tKsidata.KSI=LCASE(tKsiabeksiazki.KSI),
tKsidata.PKW=tKsiabeksiazki.PKW,
tKsidata.TYTUL=tKsiabeksiazki.TYTUL,
tKsidata.WYD=LCASE(tKsiabeksiazki.WYD),
tKsidata.ROK=tKsiabeksiazki.ROK,
tKsidata.NRW=tKsiabeksiazki.NRW,
tKsidata.STRON=tKsiabeksiazki.STRON,
tKsidata.ISBN=tKsiabeksiazki.ISBN,
tKsidata.D_POCZ=tKsiabeksiazki.D_POCZ,
tKsidata.VAT_REALNY=CASE tKsiabeksiazki.SVAT
WHEN 1 THEN 0 WHEN 2 THEN 0 WHEN 3 THEN 2 WHEN 4 THEN 7 WHEN 5 THEN
22 WHEN 6 THEN 12 WHEN 7 THEN 17 WHEN 8 THEN 3 ELSE NULL END,
tKsidata.CENA_REALNA=IF(tKsiabeksiazki.C_ZAOK0,TRUNCATE(((tKsiabeksiaz
ki.C_DET-
tKsiabeksiazki.C_DET*tKsiabeksiazki.RABAT/100)/tKsiabeksiazki.C_ZAOK0)
+0.5,0)*tKsiabeksiazki.C_ZAOK0,tKsiabeksiazki.C_DET-
tKsiabeksiazki.C_DET*tKsiabeksiazki.RABAT/100),
tKsidata.C_DET=IF(tKsiabeksiazki.C_ZAOK0,TRUNCATE(tKsiabeksiazki.C_DET
/tKsiabeksiazki.C_ZAOK0+0.5,0)*tKsiabeksiazki.C_ZAOK0,
tKsiabeksiazki.C_DET),
tKsidata.C_WAL0=tKsiabeksiazki.C_WAL0,
tKsidata.RABAT=tKsiabeksiazki.RABAT,
tKsidata.STAN_REALNY= IF(tKsiabeksiazki.STAN-tKsiabeksiazki.S_BLK
+IFNULL(tKsigdanskksiazki.STAN,0) -IFNULL(tKsigdanskksiazki.S_BLK,0)
+IFNULL(tKsigliwiceksiazki.STAN,0) -
IFNULL(tKsigliwiceksiazki.S_BLK,0) +IFNULL(tKsikrakowksiazki.STAN,0) -
IFNULL(tKsikrakowksiazki.S_BLK,0) +IFNULL(tKsiwysksiazki.STAN,0) -
IFNULL(tKsiwysksiazki.S_BLK,0) +IFNULL(tKsikolejowaksiazki.STAN,0) -
IFNULL(tKsikolejowaksiazki.S_BLK,0) < 0, 0, tKsiabeksiazki.STAN-
tKsiabeksiazki.S_BLK +IFNULL(tKsigdanskksiazki.STAN,0) -
IFNULL(tKsigdanskksiazki.S_BLK,0) +IFNULL(tKsigliwiceksiazki.STAN,0) -
IFNULL(tKsigliwiceksiazki.S_BLK,0) +IFNULL(tKsikrakowksiazki.STAN,0) -
IFNULL(tKsikrakowksiazki.S_BLK,0) +IFNULL(tKsiwysksiazki.STAN,0) -
IFNULL(tKsiwysksiazki.S_BLK,0) +IFNULL(tKsikolejowaksiazki.STAN,0) -
IFNULL(tKsikolejowaksiazki.S_BLK,0) ),
tKsidata.STAN_WAW=IF(tKsiabeksiazki.STAN-tKsiabeksiazki.S_BLK <= 0,
0, tKsiabeksiazki.STAN-tKsiabeksiazki.S_BLK),
tKsidata.NAZWISKO_1=a1.NAZW,
tKsidata.IMIE1_1=IF(CHAR_LENGTH(a1.IM1)=1,CONCAT(a1.IM1,'.'),a1.IM1),
tKsidata.IMIE2_1=IF(CHAR_LENGTH(a1.IM2)=1,CONCAT(a1.IM2,'.'),a1.IM2),
tKsidata.NAZWISKO_2=a2.NAZW,
tKsidata.IMIE1_2=IF(CHAR_LENGTH(a2.IM1)=1,CONCAT(a2.IM1,'.'),a2.IM1),
tKsidata.IMIE2_2=IF(CHAR_LENGTH(a2.IM2)=1,CONCAT(a2.IM2,'.'),a2.IM2),
tKsidata.NAZWISKO_3=a3.NAZW,
tKsidata.IMIE1_3=IF(CHAR_LENGTH(a3.IM1)=1,CONCAT(a3.IM1,'.'),a3.IM1),
tKsidata.IMIE2_3=IF(CHAR_LENGTH(a3.IM2)=1,CONCAT(a3.IM2,'.'),a3.IM2),
tKsidata.BIT=tKsiabeksiazki.BIT, tKsidata.GRKOD=tGrupy.GRKOD,
tKsidata.DZIALID=tUnits.DZIALID, tKsidata.SERIAID=tSeries.SERIAID,
tKsidata.KSIDESCPL=CONCAT_WS('<p></p>',IF(tBooksextra.BOOKCOMMENT1PL,t
Booksextra.BOOKCOMMENT1PL,tBooksextra.BOOKCOMMENT1EN),IF(tBooksextra.B
OOKCOMMENT2PL,tBooksextra.BOOKCOMMENT2PL,tBooksextra.BOOKCOMMENT2EN),I
F(tBooksextra.BOOKCOMMENT3PL,tBooksextra.BOOKCOMMENT3PL,tBooksextra.BO
OKCOMMENT3EN)),
tKsidata.KSIDESCEN=CONCAT_WS('<p></p>',tBooksextra.BOOKCOMMENT1EN,tBoo
ksextra.BOOKCOMMENT2EN,tBooksextra.BOOKCOMMENT3EN),
tKsidata.TOC=tBooksextra.TOC,
tKsidata.MIESIAC=tBooksextra.MIESIAC,
tKsidata.BINDING=tBooksextra.BINDING,
tKsidata.STATUS=tBooksextra.STATUS,
tKsidata.COVER=IF(tCovers.KSI,'1','0'),
tKsidata.SHOWPRICE=IFNULL(tBooksextra.SHOWPRICE,1),
tKsidata.VISIBLE=IFNULL(tBooksextra.VISIBLE,1)
WHERE tKsidata.KSI=tKsiabeksiazki.KSI
AND tKsiabeksiazki.ID1=tGrupy.ID1 AND tKsiabeksiazki.ID2=tGrupy.ID2;
./ premax
./ premax@stripped
./ koniec i bomba, a kto czytal ten traba. w.g.