Nobregas MySQL Panel suportă execuția mai multor instrucțiuni SQL dintr-o dată. Separă fiecare instrucțiune cu punct-virgulă și panoul le va executa secvențial, returnând rezultatele pentru fiecare.
Cum funcționează execuția multi-instrucțiune
Când introduci mai multe instrucțiuni SQL separate prin punct-virgulă, panoul:
- Împarte textul introdus în instrucțiuni individuale.
- Execută fiecare instrucțiune în ordine pe baza de date selectată.
- Returnează rezultatul ultimei instrucțiuni (sau un rezumat combinat al rezultatelor).
Scrierea mai multor instrucțiuni
Separă fiecare instrucțiune cu punct-virgulă (;). Le poți pune pe o singură linie sau pe mai multe linii:
Pe o singură linie
INSERT INTO logs (msg) VALUES ('start'); SELECT * FROM logs;
Pe mai multe linii (recomandat)
INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com');
INSERT INTO users (name, email) VALUES ('Bob', 'bob@example.com');
SELECT * FROM users ORDER BY id DESC LIMIT 5;
Cazuri comune de utilizare multi-instrucțiune
Inserarea mai multor rânduri
INSERT INTO products (name, price) VALUES ('Widget A', 9.99);
INSERT INTO products (name, price) VALUES ('Widget B', 14.99);
INSERT INTO products (name, price) VALUES ('Widget C', 24.99);
Configurare și verificare
CREATE TABLE IF NOT EXISTS temp_data (id INT AUTO_INCREMENT PRIMARY KEY, value TEXT);
INSERT INTO temp_data (value) VALUES ('test');
SELECT * FROM temp_data;
Operațiuni de curățare
DELETE FROM sessions WHERE expires_at < NOW();
DELETE FROM tokens WHERE created_at < DATE_SUB(NOW(), INTERVAL 30 DAY);
SELECT 'Cleanup complete' AS status;
Considerații importante
Ordinea execuției
Instrucțiunile se execută secvențial de sus în jos. Dacă instrucțiunea 2 depinde de instrucțiunea 1 (de ex. inserare apoi selectare), se vor executa în ordinea corectă.
Gestionarea erorilor
Dacă orice instrucțiune eșuează, execuția se oprește în acel punct. Instrucțiunile dinaintea erorii au fost deja aplicate. Instrucțiunile de după eroare nu sunt executate. Verifică mesajul de eroare pentru a identifica ce instrucțiune a eșuat.
Fără tranzacții
Fiecare instrucțiune este auto-confirmată (auto-commit). Nu există tranzacție implicită care să învelească instrucțiunile multiple. Dacă a treia din cinci instrucțiuni eșuează, primele două au fost deja confirmate și nu pot fi anulate.
Afișarea rezultatelor
Panoul de rezultate al interogărilor arată de obicei rezultatul ultimei instrucțiuni SELECT sau un rezumat al rândurilor afectate din toate instrucțiunile.
Sfaturi pentru interogări multi-instrucțiune
- Termină întotdeauna cu un SELECT dacă vrei să vezi rezultate după modificări.
- Testează instrucțiunile individual înainte de a le combina, mai ales pe cele distructive.
- Folosește comentarii pentru a organiza scripturile complexe multi-instrucțiune:
-- Creare tabel
CREATE TABLE IF NOT EXISTS settings (key_name VARCHAR(100), value TEXT);
-- Inserare valori implicite
INSERT INTO settings VALUES ('site_name', 'My App');
INSERT INTO settings VALUES ('version', '1.0');
-- Verificare
SELECT * FROM settings;