Загрузка данных


-- 1. INSERT (ввод)
PREPARE stmt_insert FROM 
'INSERT INTO students (lastName, name, yearBirth, gender, team) 
 VALUES (?, ?, ?, ?, ?)';

-- 2. UPDATE (редактирование)
PREPARE stmt_update FROM 
'UPDATE students SET lastName = ?, name = ?, yearBirth = ?, gender = ?, team = ? 
 WHERE id = ?';

-- 3. DELETE (удаление) — с проверкой связанных записей
PREPARE stmt_delete FROM 'DELETE FROM students WHERE id = ?';

-- Пример использования INSERT
SET @ln = 'Иванов', @n = 'Петр', @yb = 2005, @g = 'M', @t = 1;
EXECUTE stmt_insert USING @ln, @n, @yb, @g, @t;

-- Пример UPDATE
SET @ln = 'Петров', @id = 5;
EXECUTE stmt_update USING @ln, 'Иван', 2004, 'M', 2, @id;

-- Пример DELETE с проверкой
SET @stud_id = 10;
-- Сначала проверяем связанные записи
SELECT COUNT(*) INTO @linked FROM team WHERE lider = @stud_id;
SELECT COUNT(*) INTO @linked2 FROM work WHERE team IN (SELECT id FROM team WHERE lider = @stud_id);

IF @linked + @linked2 > 0 THEN
    SELECT 'Ошибка: есть связанные записи!' AS message;
ELSE
    EXECUTE stmt_delete USING @stud_id;
    SELECT 'Студент удалён' AS message;
END IF;