Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 12:46 28.04.24 
Клубове/ Компютри и Интернет / Бази данни Всички теми Следваща тема Пълен преглед*
Информация за клуба
Тема Re: прехвърляне на топката [re: Dakota]
Автор salle (един такъв)
Публикувано10.12.09 11:42  



В отговор на:

Даваш ли си сметка, че ако SQL беше написан според твоите виждания операторът ROLLBACK нямаше да има право да съществува? А и COMMIT всъщност.



Това пък защо? Тъкмо напротив - единият (COMMIT) значи всичко, а другият (ROLLBACK) - нищо. И двата оператора имат своето място и значение за мен.


Въпросът ми е съвсем сериозен и те моля да отговориш защото това ще ти изясни къде е проблемът в твоята логика.

Ако транзакциите работят така както ти очакваш кога и при какви обстоятелства изобщо би ти се наложило да използваш ROLLBACK?

Следвайки твоята логика отговорът трябва да е: Никога! А оттам следва, че и от COMMIT всъщност няма нужда.



Транзакцията (логическата операция) "банков превод" се състои от две операции върху БД - намаляване на едната сметка и увеличаване на другата:

BEGIN;

UPDATE account SET money = money - 200 WHERE id=1;

UPDATE account SET money = money + 200 WHERE id=2;

COMMIT;



Ако видиш някой твой подчинен да пише такива транзакции моментално то уволнявай



След всеки UPDATE клиентската част трябва да проверява за проблеми и да продължава със следващия оператор само ако няма такива в противен случай да праща ROLLBACK

Забележи, че казвам проблеми а не грешки! Напълно е възможно даден оператор да мине чисто, но въпреки това да има селиозен проблем.

Представи си, че в твоя пример резултатите са без грешка но:

UPDATE account SET money = money - 200 WHERE id=1;
Query OK, 1 row affected (0.00 sec)

UPDATE account SET money = money + 200 WHERE id=2;
Query OK, 0 row affected (0.00 sec)

Ако действаме по твоята логика, че отговорността е изцяло на сървъра и му се доверим, че ще открие всички проблеми какво се получава в този случай? Атомарна транзакция, която оставя боза след себе си.


Това което ти убягва в цялата работа е, че обработката на транзакции се случва в среда Клиент-Сървър а не само и единствено в Сървъра.



Цялата тема
ТемаАвторПубликувано
* Транзакции в MySQL 5.0 Dakota   30.11.09 15:30
. * Re: Транзакции в MySQL 5.0 wqw   01.12.09 01:36
. * Re: Транзакции в MySQL 5.0 salle   05.12.09 01:10
. * така де Dakota   07.12.09 13:42
. * Re: така де salle   07.12.09 14:41
. * Re: така де wqw   07.12.09 15:14
. * Re: така де Dakota   07.12.09 19:07
. * Re: така де Aaron   07.12.09 20:49
. * Re: така де salle   08.12.09 11:58
. * прехвърляне на топката Dakota   09.12.09 18:10
. * Re: прехвърляне на топката Aaron   09.12.09 23:48
. * Re: прехвърляне на топката wqw   10.12.09 02:13
. * Re: прехвърляне на топката salle   10.12.09 11:49
. * Re: прехвърляне на топката Dakota   10.12.09 12:14
. * Re: прехвърляне на топката salle   10.12.09 11:42
. * Re: прехвърляне на топката Dakota   10.12.09 12:13
. * Re: прехвърляне на топката bira_more   10.12.09 20:27
. * Re: прехвърляне на топката salle   12.12.09 17:39
. * Re: прехвърляне на топката Dakota   13.12.09 01:34
. * Re: прехвърляне на топката wqw   13.12.09 01:41
. * Re: прехвърляне на топката salle   13.12.09 18:13
. * Re: прехвърляне на топката NDeu   14.12.09 09:29
. * Re: прехвърляне на топката salle   14.12.09 16:57
. * окей Dakota   15.12.09 12:45
. * Re: окей wqw   15.12.09 12:52
. * Re: окей Dakota   15.12.09 14:53
. * Re: окей wqw   16.12.09 12:15
. * Re: окей wqw   16.12.09 12:17
. * Re: окей Dakota   16.12.09 13:34
. * Re: окей wqw   16.12.09 13:39
. * Re: окей Dakota   16.12.09 15:04
. * Re: окей wqw   16.12.09 15:24
. * Re: окей Dakota   16.12.09 16:23
. * Re: Транзакции в MySQL 5.0 Aaron   06.12.09 13:02
. * Re: Транзакции в MySQL 5.0 salle   07.12.09 13:10
. * Re: Транзакции в MySQL 5.0 Aaron   07.12.09 18:42
. * Re: Транзакции в MySQL 5.0 salle   08.12.09 10:33
. * Re: Транзакции в MySQL 5.0 Aaron   08.12.09 10:51
. * Re: Транзакции в MySQL 5.0 sonic86   28.12.09 21:25
. * Re: Транзакции в MySQL 5.0 Aaron   29.12.09 09:48
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.