Variabelen (MySQL): verschil tussen versies
Naar navigatie springen
Naar zoeken springen
Regel 8: | Regel 8: | ||
set @ouder=(select tid from term_data where name = "DeWalt" and description = "Koolborstels voor DeWalt"); | set @ouder=(select tid from term_data where name = "DeWalt" and description = "Koolborstels voor DeWalt"); | ||
+ | |||
+ | == Input-argumenten bij sprocs == | ||
+ | |||
+ | Een input-argument (of hoe dat moge heten) in een sproc, heeft geen '@' nodig, maar er zijn wel beperkingen: | ||
+ | |||
+ | <pre> | ||
+ | CREATE DEFINER=`root`@`localhost` PROCEDURE `ExportFixNull`(in tblname tinytext ) | ||
+ | BEGIN | ||
+ | |||
+ | select tblname; -- Dit werkt! | ||
+ | select * from tblname; -- Werk niet: Foutmelding dat tabel 'tblname' niet bestaan | ||
+ | select * from @tblname; -- Syntax error | ||
+ | |||
+ | END | ||
+ | </pre> | ||
+ | |||
+ | Wat hoe dan ook werkt: Een string samenstellen en executeren, werkt in ieder geval wel. | ||
== Bronnen == | == Bronnen == | ||
* https://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html | * https://dev.mysql.com/doc/refman/5.1/en/control-flow-functions.html |
Versie van 22 jan 2016 16:20
Ook buiten sprocs kun je met variabelen hobbyen. Bv.:
set @aanbod = true; select @aanbod; 1
Om de ééndimensionale output van een query aan een variabele toe te wijzen, moet je haakjes om de query gebruiken, met de punk-komma buiten het sluithaakje:
set @ouder=(select tid from term_data where name = "DeWalt" and description = "Koolborstels voor DeWalt");
Input-argumenten bij sprocs
Een input-argument (of hoe dat moge heten) in een sproc, heeft geen '@' nodig, maar er zijn wel beperkingen:
CREATE DEFINER=`root`@`localhost` PROCEDURE `ExportFixNull`(in tblname tinytext ) BEGIN select tblname; -- Dit werkt! select * from tblname; -- Werk niet: Foutmelding dat tabel 'tblname' niet bestaan select * from @tblname; -- Syntax error END
Wat hoe dan ook werkt: Een string samenstellen en executeren, werkt in ieder geval wel.