Jelikož MySQL neumožňuje něco jako CREATE TABLE @novyNazev (…), je potřeba si trochu pomoci. Dělá se to jednoduše tak, že si SQL příkaz nejprve uložíte do proměnné, třeba pomocí slučovacího příkazu CONCAT(‚CREATE TABLE‘, @novyNazev, ‚(…)‘); Následně pomocí příkazu PREPARE a EXECUTE SQL dotaz spustíte. Konkrétní příklad uložené procedury mluví za vše.
BEGIN SET @newDomainTable := CONCAT('domains_', newDomain); SET @SQL = CONCAT( 'CREATE TABLE ',@newDomainTable,' ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `domain` varchar(255) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `domain` (`domain`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;'); PREPARE sqlcmd from @SQL; EXECUTE sqlcmd; DEALLOCATE PREPARE sqlcmd; END