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


-- Задание 11. Комплексный сценарий (Администрирование блога)

-- 1. Создание структуры таблиц
CREATE TABLE users (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    name TEXT NOT NULL
);

CREATE TABLE posts (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    title TEXT NOT NULL,
    author_id INTEGER,
    is_published BOOLEAN DEFAULT TRUE,
    FOREIGN KEY (author_id) REFERENCES users(id)
);

-- Создаем таблицу комментариев, как того требует 4-й пункт задания
CREATE TABLE comments (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    post_id INTEGER,
    content TEXT,
    FOREIGN KEY (post_id) REFERENCES posts(id) ON DELETE CASCADE
);

-- 2. Выполнение последовательности действий

-- Добавляем нового пользователя 'Мария'
INSERT INTO users (name) VALUES ('Мария');

-- Публикуем пост от имени Марии (предположим, её id = 2, если Мария — второй созданный юзер)
INSERT INTO posts (title, author_id, is_published) 
VALUES ('Мой первый пост', (SELECT id FROM users WHERE name = 'Мария'), 1);

-- Для пользователя с id=1 снимаем все посты с публикации (is_published = FALSE)
UPDATE posts 
SET is_published = 0 
WHERE author_id = 1;

-- Удаляем все комментарии к скрытым постам пользователя id=1
-- Связь идет через post_id
DELETE FROM comments 
WHERE post_id IN (
    SELECT id 
    FROM posts 
    WHERE author_id = 1 AND is_published = 0
);