Witam.
Zrobiłem taką procedurę:
  1. CREATE procedure (09_00 int,10_00 int,11_00 int)
  2. begin
  3. IF 09_00=0 then
  4. UPDATE stat_test SET 09_00=NULL WHERE 09_00=0;
  5. end IF;
  6. IF 10_00=0 then
  7. UPDATE stat_test SET 10_00=NULL WHERE 10_00=0;
  8. end IF;
  9. IF 11_00=0 then
  10. UPDATE stat_test SET 11_00=NULL WHERE 11_00=0;
  11. end IF;
  12. end

No właśnie i niestety przy wywołaniu tej procedury zmienia mi wszystkie wiersze w danych kolumnach na null, kiedy przy wywołaniu podaje 0, a chodzi o to, żeby zmieniał tylko tam gdzie jest 0 w tabeli. Być może mam gdzieś błąd w rozumowaniu, dlatego proszę o pomoc.
Z góry dziękuję.

Problem już rozwiązany. Oto kod:
  1. CREATE procedure test1(n int)
  2. begin
  3. IF n=0 then
  4. UPDATE stat_test SET 09_00=NULL WHERE 09_00=0;
  5. UPDATE stat_test SET 10_00=NULL WHERE 10_00=0;
  6. UPDATE stat_test SET 11_00=NULL WHERE 11_00=0;
  7. UPDATE stat_test SET 12_00=NULL WHERE 12_00=0;
  8. UPDATE stat_test SET 13_00=NULL WHERE 13_00=0;
  9. UPDATE stat_test SET 14_00=NULL WHERE 14_00=0;
  10. UPDATE stat_test SET 15_00=NULL WHERE 15_00=0;
  11. UPDATE stat_test SET 16_00=NULL WHERE 16_00=0;
  12. UPDATE stat_test SET 17_00=NULL WHERE 17_00=0;
  13. UPDATE stat_test SET 18_00=NULL WHERE 18_00=0;
  14. UPDATE stat_test SET 19_00=NULL WHERE 19_00=0;
  15. UPDATE stat_test SET 20_00=NULL WHERE 20_00=0;
  16. end IF;
  17. end