mysqldbにcreate_new_db(p VARCHAR(45))という名前のストアドプロシージャがあります。構文は次のとおりです。私はmysqlストアドプロシージャコールがパラメータ値にアクセスできない
Call mysqldb.create_new_db('new_db_name');
を使用してストアドプロシージャを呼び出すときの手順を実行
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE `create_new_db`(p VARCHAR(45))
BEGIN
CREATE SCHEMA IF NOT EXISTS p DEFAULT CHARACTER SET latin1 ;
-- -----------------------------------------------------
-- Table `p`.`events`
-- -----------------------------------------------------
CREATE TABLE IF NOT EXISTS p.events (yada, yada, ...)
、データベースとテーブルが作成されますが、私は合格していますパラメータは、アクセスされていません。作成されたデータベースは、pとない私は
@P = p;
私は、ことがわかりますスクリプト内でグローバル変数へのparamaterを代入しようとしている
手続きに渡す名前PARAMTER命名されます私はプロシージャに渡しているパラメータ名は、ストアドプロシージャになっているが、どのように動作していない来る??
私はおそらくここに何かが欠けている可能性がありますが...いくつかの助けに感謝します。
ため
と同様のあなたが渡したパラメータを使用していないか、それとも単にデータベースpの名前を付けているのでしょうか? – serialworm
私はプロシージャを呼び出すときに、私はdbを呼び出す予定の名前を渡しています。mysqldb.create_new_db( 'new_db_name')を呼び出します。何が起こるかは、dbが毎回pという名前になるということです。私はpが渡されているパラメーターを参照する必要があると仮定しています –