我想創建一個簡單的過程,將創建一個新的數據庫。 我正努力超過運行mysql完整的代碼是:創建過程錯誤1046(3D000):沒有選擇數據庫
SET @DB_NAME := "mydb";
SET @DB_CREATE:= "CREATE DATABASE ";
DELIMITER //
drop procedure if exists create_db //
create procedure create_db(name TEXT)
BEGIN
DECLARE temp TEXT;
DECLARE user TEXT;
SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = name INTO temp;
if temp = name then
SIGNAL SQLSTATE '45002' SET MESSAGE_TEXT = 'This database already exist';
else
SELECT USER() INTO user;
SET @s = CONCAT('CREATE DATABASE ', name);
PREPARE stmt_create FROM @s;
EXECUTE stmt_create;
DEALLOCATE PREPARE stmt_create;
SET @s = CONCAT('GRANT ALL PRIVILEGES ON ', name, '.* TO ', user, ' WITH GRANT OPTION');
PREPARE stmt_grant FROM @s;
EXECUTE stmt_grant;
DEALLOCATE PREPARE stmt_grant;
END IF;
END //
DELIMITER ;
call create_db(@DB_NAME);
我注意到how do I use a variable in create database statement幫助創建此過程。 雖然對MySQL運行這個程序我得到錯誤:
ERROR 1046 (3D000): No database selected
我用Google搜索了很多,但無法修復它。 雖然嘗試不同的事情,我試圖通過先執行,以執行上述步驟:
mysql> USE mysql;
使用,錯誤消失。並且
mysql> show databases;
顯示所有數據庫以及新創建的數據庫。有人可以告訴我,使用mysql作爲默認數據庫是否正確。 如果有人有另一種方法,請告訴我。