私はこの手順を持っています:
DELIMITER //
create DEFINER = 'root'@'localhost' procedure create_db(name TEXT)
BEGIN
DECLARE temp TEXT;
DECLARE user TEXT;
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = name INTO temp;
if temp = name then
SIGNAL SQLSTATE '45002' SET MESSAGE_TEXT = 'This database already exist';
else
SELECT USER() INTO user;
create database name;
grant all privileges on name.* to user with grant option;
END IF;
END //
DELIMITER ;
変数名の値の代わりに文字通り「名前」を指定するだけでうまく機能します。名前が変数であることをどのように伝えますか? phpの$nameのようなものかそれ。私は多くのドキュメントを閲覧していますが、それらはすべてプレフィックスのない変数を使用しています。