DBで何かをしているmysqlのプロシージャがありますが、存在する場合は例外をスローする必要があります。それ、どうやったら出来るの?
次のようなものが必要です
if exist <db name> then
  SIGNAL SQLSTATE '45002'
  SET MESSAGE_TEXT = 'This database already exist';
end if;
    DBで何かをしているmysqlのプロシージャがありますが、存在する場合は例外をスローする必要があります。それ、どうやったら出来るの?
次のようなものが必要です
if exist <db name> then
  SIGNAL SQLSTATE '45002'
  SET MESSAGE_TEXT = 'This database already exist';
end if;
    次の SQL を使用できます。
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'DBName'
手順では、次のようになります。
DECLARE name TEXT;
SELECT SCHEMA_NAME INTO name FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = 'DBName'
IF name = 'DBName' THEN
   SIGNAL SQLSTATE '45002'
   SET MESSAGE_TEXT = 'This database already exist';
END IF;
(免責事項: 私は以前に MySQL プロシージャを作成したことがなく、これをテストしたこともありません。可能な実装方法を提供するために言及されているだけです。また、この例は完全ではありません。)