Comments - SET Variable statement

8 years, 7 months ago Chris Isaksen

looks like the documentation needs to be corrected

https://mariadb.com/kb/en/mariadb/user-defined-variables/

Clearly shows SET @str = CAST(123 AS VARCHAR(5)); in the docs.

 
8 years, 7 months ago Elena Stepanova

Apparently it was only meant to demonstrate what SET statement looks like, but yes, it was a particularly unfortunate example. I have fixed it now, thanks for noticing.

 
8 years, 7 months ago Chris Isaksen

you wouldn't happen to know the correct syntax for the following:

SET @dbname = 'name'; drop database if exists @dname;

First line works but second doesn't know what @dbname is.

 
8 years, 7 months ago Elena Stepanova

You need prepared statements to pull it off. Something like

SET @dbname = 'name';
SET @sql = CONCAT('drop database if exists ', @dbname);
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
 
Content reproduced on this site is the property of its respective owners, and this content is not reviewed in advance by MariaDB. The views, information and opinions expressed by this content do not necessarily represent those of MariaDB or any other party.