MySQL                
            Oświadczenia PREPARE
        
        
            
    Szukaj…
Składnia
- PREPARE stmt_name FROM preparable_stmt
 - WYKONAJ nazwa_mowy [UŻYWANIE @ nazwa_var [, @ nazwa_var] ...]
 - {DEALLOCATE | DROP} PREPARE stmt_name
 
PRZYGOTUJ, WYKONAJ i PRZYDATNOŚĆ instrukcji PREPARE
PREPARE przygotowuje instrukcję do wykonania
EXECUTE wykonuje przygotowane polecenie
DEALLOCATE PREPARE wydaje przygotowane oświadczenie
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;
 Wynik:
+------------+
| hypotenuse |
+------------+
|         10 |
+------------+
 Wreszcie,
DEALLOCATE PREPARE stmt2;
 Uwagi:
-  Musisz użyć @ zmiennych, a nie ZADEKLAROWANYCH zmiennych dla 
FROM @s - Podstawowym zastosowaniem Prepare itp. Jest „skonstruowanie” zapytania w sytuacjach, w których wiązanie nie będzie działać, takich jak wstawienie nazwy tabeli.
 
Konstruuj i wykonuj
 (To jest prośba o dobry przykład, który pokazuje, jak skonstruować SELECT za pomocą CONCAT , a następnie przygotować + wykonać. Podkreśl użycie zmiennych @variables vs. DECLAREd - robi to dużą różnicę i jest czymś, co nowicjusze ( uwzględnij mnie) potknąć się.) 
Zmień tabelę, dodając kolumnę
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
        Licencjonowany na podstawie CC BY-SA 3.0
        Nie związany z Stack Overflow