<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Форум PHP-MyAdmin.RU &mdash; проблема с триггером]]></title>
	<link rel="self" href="https://forum.php-myadmin.ru/extern.php?action=feed&amp;tid=1252&amp;type=atom" />
	<updated>2009-05-27T12:52:09Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.php-myadmin.ru/viewtopic.php?id=1252</id>
		<entry>
			<title type="html"><![CDATA[Re: проблема с триггером]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=8309#p8309" />
			<content type="html"><![CDATA[<p><strong>IgAl</strong><br />У триггера в MySQL есть особенность - нельзя производить операции над той таблицей, к которой относится триггер. Причина заключается в том, что, к примеру, при операции вставки происходит блокировка таблицы и вызвав одновременно из триггера операцию производящую какие-либо действия над блокированной текущей таблицей, получите ошибку.</p><p>Решением может быть создание процедуры содержащей запрос на удаление строк. Таким образом, сразу после запроса вставки строки вызываем следующим запросом процедуру удаления старых строк, и никаких трудностей не будет.</p>]]></content>
			<author>
				<name><![CDATA[Hanut]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=181</uri>
			</author>
			<updated>2009-05-27T12:52:09Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=8309#p8309</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[проблема с триггером]]></title>
			<link rel="alternate" href="https://forum.php-myadmin.ru/viewtopic.php?pid=8307#p8307" />
			<content type="html"><![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>]]></content>
			<author>
				<name><![CDATA[IgAl]]></name>
				<uri>https://forum.php-myadmin.ru/profile.php?id=2035</uri>
			</author>
			<updated>2009-05-27T06:53:27Z</updated>
			<id>https://forum.php-myadmin.ru/viewtopic.php?pid=8307#p8307</id>
		</entry>
</feed>
