| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > MySQL > Проверка логического условия |
| Автор: UsamaBrainLaden 13.11.2008, 02:20 |
| Есть две таблицы: CREATE TABLE users ( id MEDIUMINT AUTO_INCREMENT PRIMARY KEY, name CHAR(10) ); CREATE TABLE posters ( id MEDIUMINT AUTO_INCREMENT PRIMARY KEY, topic CHAR(10), owner MEDIUMINT REFERENCES users(id) ); Таблица пользователей (users) хранит имена пользователей и их код,а таблица объявлений (posters) хранит номер объявления, его текст и код пользователя, который это объявление повесил. У всех пользователей есть полный доступ к таблице (имеется ввиду SELECT,INSERT и DELETE), но в тоже время пользователь может удалять только своё объявление. Иными словами необходимо проверить совпадение кода пользователя пытающегося удалить запись с кодом который записан в таблицу posters: posters.owner = (SELECT id FROM users WHERE users.name = SUBSTRING_INDEX(USER(),'@',1) ); На стороне клиентской программы это сделать не сложно, но в целях безопасности хотелось бы эту проверку перенести на сервер и отвергать операцию удаления в случае не удовлетворения логического условия указанного выше, как это сделать? |
| Автор: Akina 13.11.2008, 09:03 |
| Триггером |
| Автор: UsamaBrainLaden 14.11.2008, 03:43 |
| Проверку то можно сделать триггером,а вот отмену удаления в случае неудовлетворения условия...? |
| Автор: Akina 14.11.2008, 10:38 |
| А что мешает? на то и триггер... маны читаем, да... |