Untitled

 avatar
unknown
plain_text
2 years ago
1.4 kB
5
Indexable
CREATE PROCEDURE AddUserAndList(IN p_user_login VARCHAR(255), IN p_user_full_name VARCHAR(255), IN p_list_name VARCHAR(255), IN p_list_description VARCHAR(255))
BEGIN
    DECLARE v_user_id INT;
    DECLARE v_list_id INT;

    -- Проверка существующего пользователя
    SELECT iduser INTO v_user_id FROM users WHERE login = p_user_login LIMIT 1;

    -- Если пользователь не существует, добавляем
    IF v_user_id IS NULL THEN
        INSERT INTO users (login, full_name) VALUES (p_user_login, p_user_full_name);
        SET v_user_id = LAST_INSERT_ID();
    END IF;

    -- Проверка существующей рассылки
    IF p_list_name IS NOT NULL AND p_list_description IS NOT NULL THEN
        SELECT idlist INTO v_list_id FROM maillist WHERE list_name = p_list_name LIMIT 1;

        -- Если рассылка не существует, добавляем
        IF v_list_id IS NULL THEN
            INSERT INTO maillist (list_name, description) VALUES (p_list_name, p_list_description);
            SET v_list_id = LAST_INSERT_ID();
        END IF;

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