Prepared Statements (MySQL): verschil tussen versies
Naar navigatie springen
Naar zoeken springen
(Een tussenliggende versie door dezelfde gebruiker niet weergegeven) | |||
Regel 7: | Regel 7: | ||
<pre> | <pre> | ||
set @string="update tabel set velda=ifnull(velda,''); update tabel set veldb=ifnull(veldb,'');" -- Werkt niet! | set @string="update tabel set velda=ifnull(velda,''); update tabel set veldb=ifnull(veldb,'');" -- Werkt niet! | ||
+ | set @string="update tabel set velda=ifnull(velda,''), veldb=ifnull(veldb,'');" -- Werkt wel! | ||
</pre> | </pre> | ||
Regel 20: | Regel 21: | ||
* http://stackoverflow.com/questions/2977356/in-mysql-how-to-pass-a-table-name-as-stored-procedure-and-or-function-argument | * http://stackoverflow.com/questions/2977356/in-mysql-how-to-pass-a-table-name-as-stored-procedure-and-or-function-argument | ||
− | * http://rpbouman.blogspot.nl/2005/11/mysql-5-prepared-statement-syntax-and.html | + | * http://rpbouman.blogspot.nl/2005/11/mysql-5-prepared-statement-syntax-and.html - Achtergrondinfo, oa. tav. prestaties |
* http://dev.mysql.com/doc/refman/5.1/en/sql-syntax-prepared-statements.html | * http://dev.mysql.com/doc/refman/5.1/en/sql-syntax-prepared-statements.html |
Huidige versie van 12 dec 2015 om 18:03
MySQL's variant van dynamische SQL heet Prepared statements. Als je weet waar je mee bezig bent, kunnen prepared statements heel handig zijn. Vaak zijn ze zelfs de enige oplossing.
Eén commando per statement
Een prepared statement kan maar één commando bevatten:
set @string="update tabel set velda=ifnull(velda,''); update tabel set veldb=ifnull(veldb,'');" -- Werkt niet! set @string="update tabel set velda=ifnull(velda,''), veldb=ifnull(veldb,'');" -- Werkt wel!
Bronnen
Dynamische SQL in het algemeen
- http://stackoverflow.com/questions/2977356/in-mysql-how-to-pass-a-table-name-as-stored-procedure-and-or-function-argument
- http://www.sommarskog.se/dynamic_sql.html
- http://stackoverflow.com/questions/2754423/use-a-variable-for-table-name-in-mysql-sproc
Prepared statements
- http://stackoverflow.com/questions/2977356/in-mysql-how-to-pass-a-table-name-as-stored-procedure-and-or-function-argument
- http://rpbouman.blogspot.nl/2005/11/mysql-5-prepared-statement-syntax-and.html - Achtergrondinfo, oa. tav. prestaties
- http://dev.mysql.com/doc/refman/5.1/en/sql-syntax-prepared-statements.html