MySQL и защита от удаления записей в таблицах

Однажды мне понадобилась защита от удаления записей в таблице. Естественно, на триггере BEFORE DELETE, чтобы уж наверняка все работало. В привычном мне Oracle такая задача решается очень просто, с вызовом raise_application_error внутри триггера. Но как оказалось, в MySQL такая задача решается через жоп использование несуществующего поля в какой-нибудь таблице. Вот пример:

delimiter |

CREATE TRIGGER my_table_bd
BEFORE DELETE ON my_table
FOR EACH ROW
begin
declare v int;
if ifnull(old.status,0) > 0 then
select antarktida
into v
from logs u
where africa = 'asia';
end if;
end|

delimiter ;

Полей antarktida, africa в таблице logs нет, поэтому при срабатывании триггера происходит ошибка. Причем ошибка выскочит, если ifnull(old.status,0) > 0. Такая конструкция выглядит ужасно (костыль он и есть костыль), но работает 100%. И похоже, это единственный способ запретить удаление из таблицы.

Опубликовано в рубриках: MySQL

Moneybookers подложили американцам свинью

История давнишняя, но я узнал только сегодня. Неизвестно зачем и почему, но манибукерс очень сильно ущемили американцев в возможностях платить деньги. Официальный ответ Moneybookers такой:

Following up your query we confirm that due to change in our policies, we will stop processing payments between US customers, and US customers and international customers using the Send Money service, with effect from November 19.11.08.

We apologize for any inconvenience caused.

Вот теперь у всяческих вебманей появляется возможность активно поучаствовать в освоении американского рынка. А все потому, что россиянам и украинцам Paypal не разрешает принимать платежи на свой счет (только Send only для нас), а букерсы запретили американцам отправлять деньги.

Жаль, очень жаль. Moneybookers удобны для ввода денег, прекрасно работают с нашими карточками Visa Classic (a для Paypal годятся далеко не все).