Авто удаляемая LibArea)

Ryan Ryan 17 Июля 2023


Я чуть чуть модернизировал базу данных)
В общем я взял из базы данных таблицу с постами, и создал для нее специальный триггер.

DELIMITER //

CREATE TRIGGER posts_insert_trigger AFTER INSERT ON posts
FOR EACH ROW
BEGIN
    -- Установить флаг, указывающий на наличие новых записей
    UPDATE posts_status SET has_new_records = 1;
END//

DELIMITER ;

Далее создал дополнительную таблицу, которая будет хранить информацию о наличии новых записей в той таблице, за которой мы будем следить…

CREATE TABLE IF NOT EXISTS posts_status (
    has_new_records TINYINT(1) NOT NULL DEFAULT 0
);

Затем создаем процедуру, которая будет проверять наличие новых записей и удалять таблицу «posts» при их отсутствии в течение 24 часов.

DELIMITER //

CREATE PROCEDURE delete_posts_table()
BEGIN
    DECLARE new_records_count INT;

    -- Проверить наличие новых записей
    SELECT COUNT(*) INTO new_records_count FROM posts_status WHERE has_new_records = 1;

    IF new_records_count = 0 THEN
        -- Удалить таблицу "posts"
        DROP TABLE IF EXISTS posts;

        -- Удалить запись о статусе
        DELETE FROM posts_status;
    END IF;
END//

DELIMITER ;

Ну и создаем задание в планировщике, который будет запускать эту процедуру.

CREATE EVENT IF NOT EXISTS delete_posts_event
ON SCHEDULE EVERY 24 HOUR
DO
    CALL delete_posts_table();

Так что приглашаю спасать yryr.ru от гибели) Зайди раз в сутки и напиши привет!
https://yryr.ru/

Сорян за ссылку, но я же как-то должен продвинуть идею.

+ Сам сделал, сам сломал. Пытаюсь поправить)))

4 Ответа

  1. Evg Evg 18 Июля 2023 (ред.)

    Это можно сказать хулиганство над базой :)
    Чё только люди не придумают. Вот сроду бы в голову не пришло это. )

    1. Ryan Ryan 18 Июля 2023

      А мне вот пришло) Но я отказался от этой идеи.
      Я попробовал. У меня получилось. А после вернул сделанный дамп)

  1. yuran yuran 18 Июля 2023
    CREATE PROCEDURE delete_posts_table()
    BEGIN
        DECLARE new_records_count INT;

    А это на каком языке? Если Вы программист — может подключитесь к усовершенствованию движка Libarea? Вообще молодец — то тетрис, то автоудаление, то еще какие-то движухи… Ставлю +.

    1. Ryan Ryan 18 Июля 2023

      Это sql запрос для базы данных в Mysql на создание процедуры.
      И я не программист.