Итак, я создаю базу данных для веб-сайта. Внутри этой базы данных есть таблица с названием «featured». Я должен убедиться, что в этой таблице не более 25 элементов в любой момент времени. Для того, чтобы достичь этой цели, я создал триггер:Database Trigger - Максимальное количество элементов в таблице
DELIMITER $$
CREATE TRIGGER featured_check AFTER INSERT ON featured
FOR EACH ROW
BEGIN
IF (SELECT COUNT(*) FROM featured) > 25 THEN
DELETE FROM featured ORDER BY featured_id LIMIT 1;
END IF;
END$$
DELIMITER ;
Этот триггер должен быть активирован каждый раз, когда элемент вставляется в таблицу признаков. Он будет подсчитывать количество элементов в таблице, и если счетчик превышает 25, он удалит элемент с наименьшим идентификатором. «featured_id» в этом случае является автоматически увеличивающим первичный ключ.
Учитывая всю эту информацию, у меня есть два вопроса:
- ли делать это триггер, что я думаю, что он делает? Я не эксперт по базам данных, и я просто хотел убедиться.
- Это лучший способ решить эту проблему? Есть ли лучший способ предотвратить наличие у таблицы более 25 предметов?
1. Я бы создал таблицу с 25 строками и триггером и просто проверить для себя. – Kleskowy
Я не знал, что вы можете создать таблицу с заданным количеством строк. – Flyingcows00