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 プロシージャを作成したことがなく、これをテストしたこともありません。可能な実装方法を提供するために言及されているだけです。また、この例は完全ではありません。)