Untitled

mail@pastecode.io avatar
unknown
plain_text
7 months ago
1.4 kB
1
Indexable
Never
CREATE PROCEDURE AddUserAndList(IN user_login VARCHAR(255), IN user_full_name VARCHAR(255), IN list_name VARCHAR(255), IN list_description VARCHAR(255))
BEGIN
    DECLARE user_id INT;
    DECLARE list_id INT;

    -- Проверка существующего пользователя
    SELECT iduser INTO user_id FROM users WHERE login = user_login;
    
    -- Если пользователь не существует, добавляем
    IF user_id IS NULL THEN
        INSERT INTO users (login, full_name) VALUES (user_login, user_full_name);
        SET user_id = LAST_INSERT_ID();
    END IF;

    -- Проверка существующей рассылки
    IF list_name IS NOT NULL AND list_description IS NOT NULL THEN
        SELECT idlist INTO list_id FROM maillist WHERE list_name = list_name;
        
        -- Если рассылка не существует, добавляем
        IF list_id IS NULL THEN
            INSERT INTO maillist (list_name, description) VALUES (list_name, list_description);
            SET list_id = LAST_INSERT_ID();
        END IF;

        -- Добавление информации о пользователе и рассылке в таблицу list_user
        INSERT INTO list_user (id_user, id_list) VALUES (user_id, list_id);
    END IF;
END //
Leave a Comment