<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Форум PHP-MyAdmin.RU &mdash; проблема с триггером]]></title>
		<link>https://forum.php-myadmin.ru/viewtopic.php?id=1252</link>
		<atom:link href="https://forum.php-myadmin.ru/extern.php?action=feed&amp;tid=1252&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «проблема с триггером».]]></description>
		<lastBuildDate>Wed, 27 May 2009 12:52:09 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: проблема с триггером]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=8309#p8309</link>
			<description><![CDATA[<p><strong>IgAl</strong><br />У триггера в MySQL есть особенность - нельзя производить операции над той таблицей, к которой относится триггер. Причина заключается в том, что, к примеру, при операции вставки происходит блокировка таблицы и вызвав одновременно из триггера операцию производящую какие-либо действия над блокированной текущей таблицей, получите ошибку.</p><p>Решением может быть создание процедуры содержащей запрос на удаление строк. Таким образом, сразу после запроса вставки строки вызываем следующим запросом процедуру удаления старых строк, и никаких трудностей не будет.</p>]]></description>
			<author><![CDATA[null@example.com (Hanut)]]></author>
			<pubDate>Wed, 27 May 2009 12:52:09 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=8309#p8309</guid>
		</item>
		<item>
			<title><![CDATA[проблема с триггером]]></title>
			<link>https://forum.php-myadmin.ru/viewtopic.php?pid=8307#p8307</link>
			<description><![CDATA[<p>есть таблица `master_table`</p><p>создаю триггер<br /></p><div class="codebox"><pre><code>create trigger `clear_table` after insert on `master_table`
for each row
delete from `master_table` where time_d&lt;now()</code></pre></div><p>проблема в том, что до загрузки триггера добавление новых записей происходит нормально, а после загрузки триггера (проходит успешно) и попытки добавить новую запись вылазит ошибка:<br />#1442 - Can`t update table `master_table` in stored function/trigger because it is already used by statement which invoked this stored</p><p>не могу понять в чём проблема. Я хочу после каждого добавления новой записи, удалять все другие старше указанного времени (использовал now() что б всё выражение не писать)</p><p>или может есть какое то другое решение?</p><p>использую phpMyAdmin 2.6.1 MySQL 5.0.45</p><p>если не сложно, просьба отправить ответ по почте...</p>]]></description>
			<author><![CDATA[null@example.com (IgAl)]]></author>
			<pubDate>Wed, 27 May 2009 06:53:27 +0000</pubDate>
			<guid>https://forum.php-myadmin.ru/viewtopic.php?pid=8307#p8307</guid>
		</item>
	</channel>
</rss>
