MySQL
PREPARAZIONE delle dichiarazioni
Ricerca…
Sintassi
- PREPARAZIONE stmt_name FROM preparable_stmt
- ESEGUI stmt_name [USING @var_name [, @var_name] ...]
- {DEALLOCATE | DROP} PREPARA stmt_name
PREPARARE, ESEGUIRE e DISALLOCARE le dichiarazioni PREPARA
PREPARE prepara una dichiarazione per l'esecuzione
EXECUTE esegue una dichiarazione preparata
DEALLOCATE PREPARE rilascia una dichiarazione preparata
SET @s = 'SELECT SQRT(POW(?,2) + POW(?,2)) AS hypotenuse';
PREPARE stmt2 FROM @s;
SET @a = 6;
SET @b = 8;
EXECUTE stmt2 USING @a, @b;
Risultato:
+------------+
| hypotenuse |
+------------+
| 10 |
+------------+
Finalmente,
DEALLOCATE PREPARE stmt2;
Gli appunti:
- Devi usare @variables, non DECLAREd variabili per
FROM @s
- Un uso primario di Prepara, ecc. È di "costruire" una query per situazioni in cui l'associazione non funzionerà, come l'inserimento del nome della tabella.
Costruisci ed esegui
(Questa è una richiesta per un buon esempio che mostra come costruire un SELECT
usando CONCAT
, quindi prepararlo + eseguirlo. Per favore enfatizza l'uso di @variables rispetto alle variabili DECLAREd: fa una grande differenza, ed è qualcosa che i novizi ( includi me stesso) inciampare.)
Modificare la tabella con Aggiungi colonna
SET v_column_definition := CONCAT(
v_column_name
,' ',v_column_type
,' ',v_column_options
);
SET @stmt := CONCAT('ALTER TABLE ADD COLUMN ', v_column_definition);
PREPARE stmt FROM @stmt;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow