冪等性っていいですよね、何度実行しても結果が変わらないっていう。
Create, Drop周りにはIF EXISTS辺りが使えるけど、MySQLの場合はALTERになると無くなるんだよね・・・。
使えるものは以下、
CREATE DATABASE IF NOT EXISTS DROP DATABASE IF EXISTS CREATE TABLE IF NOT EXISTS DROP TABLE IF EXISTS
PostgreSQLだとALTER文でもあるみたい・・・
ストアド使うよりはアプリケーションの方で制御かな・・・。