<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Коментари на: Транзакции</title>
	<atom:link href="http://www.cphpvb.net/db/1458-%d1%82%d1%80%d0%b0%d0%bd%d0%b7%d0%b0%d0%ba%d1%86%d0%b8%d0%b8/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.cphpvb.net/db/1458-%d1%82%d1%80%d0%b0%d0%bd%d0%b7%d0%b0%d0%ba%d1%86%d0%b8%d0%b8/</link>
	<description>дневникът на Филип Петров</description>
	<lastBuildDate>Tue, 07 Feb 2012 14:50:41 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<item>
		<title>От: Филип Славов</title>
		<link>http://www.cphpvb.net/db/1458-%d1%82%d1%80%d0%b0%d0%bd%d0%b7%d0%b0%d0%ba%d1%86%d0%b8%d0%b8/#comment-1458</link>
		<dc:creator>Филип Славов</dc:creator>
		<pubDate>Thu, 14 May 2009 19:23:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.cphpvb.net/?p=1458#comment-1458</guid>
		<description>Аха... значи все пак ние ръчно решаваме дали да commit-нем, или Rollback-нем в зависимост от общия резултат на заявките (дали ни харесва или не :D )
10x...</description>
		<content:encoded><![CDATA[<p>Аха&#8230; значи все пак ние ръчно решаваме дали да commit-нем, или Rollback-нем в зависимост от общия резултат на заявките (дали ни харесва или не :D )<br />
10x&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Филип Петров</title>
		<link>http://www.cphpvb.net/db/1458-%d1%82%d1%80%d0%b0%d0%bd%d0%b7%d0%b0%d0%ba%d1%86%d0%b8%d0%b8/#comment-1457</link>
		<dc:creator>Филип Петров</dc:creator>
		<pubDate>Thu, 14 May 2009 19:18:34 +0000</pubDate>
		<guid isPermaLink="false">http://www.cphpvb.net/?p=1458#comment-1457</guid>
		<description>Филип Славов - Здравей,

Бъркаш цялата концепция. За MySQL това, че даден UPDATE връща &quot;грешка&quot; (от твоя пример - няма такова id) не означава, че заявката не е изпълнена успешно. Не е сървъра за базата данни този, който взима решението кога транзакция е успешна и кога не - ние сме.

В твоя пример си представи следното - тези заявки се подават от програма написана на С. След първата заявка резултатът се подава към програмата и той е &quot;OK, 1 rows affected&quot;, което за програмата означава &quot;първата заявка е успешна&quot;. След втората заявка обаче се връща грешка - тогава програмата вместо COMMIT ще подаде заявка ROLLBACK. Това е логиката. Надявам се, че се изразих ясно.</description>
		<content:encoded><![CDATA[<p>Филип Славов &#8211; Здравей,</p>
<p>Бъркаш цялата концепция. За MySQL това, че даден UPDATE връща &#8222;грешка&#8220; (от твоя пример &#8211; няма такова id) не означава, че заявката не е изпълнена успешно. Не е сървъра за базата данни този, който взима решението кога транзакция е успешна и кога не &#8211; ние сме.</p>
<p>В твоя пример си представи следното &#8211; тези заявки се подават от програма написана на С. След първата заявка резултатът се подава към програмата и той е &#8222;OK, 1 rows affected&#8220;, което за програмата означава &#8222;първата заявка е успешна&#8220;. След втората заявка обаче се връща грешка &#8211; тогава програмата вместо COMMIT ще подаде заявка ROLLBACK. Това е логиката. Надявам се, че се изразих ясно.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Филип Славов</title>
		<link>http://www.cphpvb.net/db/1458-%d1%82%d1%80%d0%b0%d0%bd%d0%b7%d0%b0%d0%ba%d1%86%d0%b8%d0%b8/#comment-1456</link>
		<dc:creator>Филип Славов</dc:creator>
		<pubDate>Thu, 14 May 2009 19:01:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.cphpvb.net/?p=1458#comment-1456</guid>
		<description>Нещо не схващам обаче...
Пиша това във MySQL конзолния прозорец:

BEGIN;

UPDATE Customer
SET t_id = 4
WHERE cus_id = 4;

UPDATE Customer
SET t_id = 5
WHERE cus_id = 4213;

COMMIT;

Както се сещате на 2-рия UPDATE такова id няма и изплюва грешка там. Но в момента в който дам COMMIT промяната на първия UPDATE се изпълнява въпреки всичко. Нали идеята на транзакциите беше да се опаковат няколко заявки във едно (между Begin и Commit-а) за да се изпълнят всички заедно и така или се изпълняват всички или никоя не се изпълнява. Как така въпреки грешката се изпълнява първия UPDATE? Или ако не при какви условия би треело транзакцията да пропадне.

ПП: Докато не дам commit, в базата ми няма промяна, проверих...
ПП2: Ползвам ENGINE = InnoDB;
ПП3: Нещо като напиша коментар не ми излизат след тва... Писах и за View преди неколко дена и все още не е излезъл..</description>
		<content:encoded><![CDATA[<p>Нещо не схващам обаче&#8230;<br />
Пиша това във MySQL конзолния прозорец:</p>
<p>BEGIN;</p>
<p>UPDATE Customer<br />
SET t_id = 4<br />
WHERE cus_id = 4;</p>
<p>UPDATE Customer<br />
SET t_id = 5<br />
WHERE cus_id = 4213;</p>
<p>COMMIT;</p>
<p>Както се сещате на 2-рия UPDATE такова id няма и изплюва грешка там. Но в момента в който дам COMMIT промяната на първия UPDATE се изпълнява въпреки всичко. Нали идеята на транзакциите беше да се опаковат няколко заявки във едно (между Begin и Commit-а) за да се изпълнят всички заедно и така или се изпълняват всички или никоя не се изпълнява. Как така въпреки грешката се изпълнява първия UPDATE? Или ако не при какви условия би треело транзакцията да пропадне.</p>
<p>ПП: Докато не дам commit, в базата ми няма промяна, проверих&#8230;<br />
ПП2: Ползвам ENGINE = InnoDB;<br />
ПП3: Нещо като напиша коментар не ми излизат след тва&#8230; Писах и за View преди неколко дена и все още не е излезъл..</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Филип Петров</title>
		<link>http://www.cphpvb.net/db/1458-%d1%82%d1%80%d0%b0%d0%bd%d0%b7%d0%b0%d0%ba%d1%86%d0%b8%d0%b8/#comment-1436</link>
		<dc:creator>Филип Петров</dc:creator>
		<pubDate>Thu, 14 May 2009 04:34:57 +0000</pubDate>
		<guid isPermaLink="false">http://www.cphpvb.net/?p=1458#comment-1436</guid>
		<description>SQL стандартът попринцип казва &quot;START TRANSACTION&quot; и &quot;COMMIT&quot;. Честно си признавам, че не знам как е в ACCESS.</description>
		<content:encoded><![CDATA[<p>SQL стандартът попринцип казва &#8222;START TRANSACTION&#8220; и &#8222;COMMIT&#8220;. Честно си признавам, че не знам как е в ACCESS.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: cufi_pufi</title>
		<link>http://www.cphpvb.net/db/1458-%d1%82%d1%80%d0%b0%d0%bd%d0%b7%d0%b0%d0%ba%d1%86%d0%b8%d0%b8/#comment-1428</link>
		<dc:creator>cufi_pufi</dc:creator>
		<pubDate>Wed, 13 May 2009 23:03:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.cphpvb.net/?p=1458#comment-1428</guid>
		<description>Искам само да попитам първия и най-лесен пример за транзакции как ще стане на Access, прочетох, че се слага BEGIN TRANSACTION и COMMIT TRANSACTION, но пак не ми тръгва.</description>
		<content:encoded><![CDATA[<p>Искам само да попитам първия и най-лесен пример за транзакции как ще стане на Access, прочетох, че се слага BEGIN TRANSACTION и COMMIT TRANSACTION, но пак не ми тръгва.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

