Hi! Could we please enable some services and cookies to improve your experience and our website?

SQLize Online / PHPize Online  /  SQLtest Online

A A A
Share code      Blog   Popular   FAQ

Online Sandbox for SQL and PHP: Write, Run, Test, and Share SQL Queries and PHP Code

Copy Format Clear
-- 1. Создаем основную таблицу клиентов CREATE TABLE IF NOT EXISTS clients ( client_id INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(50) NOT NULL, last_name VARCHAR(50) NOT NULL, email VARCHAR(100) UNIQUE, phone VARCHAR(20), registration_date DATE ) ENGINE=InnoDB; -- 2. Создаем архивную таблицу CREATE TABLE IF NOT EXISTS clients_archive ( archive_id INT AUTO_INCREMENT PRIMARY KEY, original_client_id INT, first_name VARCHAR(50) NOT NULL, last_name VARCHAR(50) NOT NULL, email VARCHAR(100), phone VARCHAR(20), registration_date DATE, transfer_date DATETIME ) ENGINE=InnoDB; -- 3. Удаляем триггер если существует (для пересоздания) DROP TRIGGER IF EXISTS archive_client_on_delete; -- 4. Создаем максимально простой триггер (обход ошибки 1419) DELIMITER // CREATE TRIGGER archive_client_on_delete BEFORE DELETE ON clients FOR EACH ROW BEGIN INSERT INTO clients_archive ( original_client_id, first_name, last_name, email, phone, registration_date, transfer_date ) VALUES ( OLD.client_id, OLD.first_name, OLD.last_name, OLD.email, OLD.phone, OLD.registration_date, NOW() ); END// DELIMITER ; -- 5. Добавляем тестовые данные INSERT INTO clients (first_name, last_name, email, phone, registration_date) VALUES ('Иван', 'Иванов', 'ivan@example.com', '79161234567', '2023-01-15'), ('Петр', 'Петров', 'petr@example.com', '79159876543', '2023-02-20'), ('Мария', 'Сидорова', 'maria@example.com', '79035432109', '2023-03-10'); -- 6. Тестируем триггер -- Удаляем клиента (должен попасть в архив) DELETE FROM clients WHERE client_id = 1; -- 7. Проверяем результаты SELECT 'Текущие клиенты:' AS title; SELECT * FROM clients; SELECT 'Архивные записи:' AS title; SELECT * FROM clients_archive;

Stuck with a problem? Got Error? Ask ChatGPT!