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