2014-09-01 30 views
0

我想通過使用變量創建和使用數據庫/模式,因此當我想在不同的模式上運行腳本時,可以更改它。MySQL創建並使用變量的新數據庫

我有這樣的事情:

SET @VarSchema = 'test'; 
SET @Front = 'CREATE DATABASE IF NOT EXISTS '; 
SET @EndPart = ';'; 
SET @Stmt = CONCAT(@Front,@VarSchema,@EndPart); 
PREPARE stmt FROM @Stmt; 
EXECUTE stmt; 

SET @Front = 'USE '; 
SET @EndPart = ';'; 
SET @Stmt = CONCAT(@Front,@VarSchema,@EndPart); 
PREPARE COMMAND FROM @Stmt; 
EXECUTE COMMAND; 

但是這給了我這個錯誤:Error Code: 1295. This command is not supported in the prepared statement protocol yet

編輯:抱怨着這樣一句話:

SET @Front = 'USE '; 
SET @EndPart = ';'; 
SET @Stmt = CONCAT(@Front,@VarSchema,@EndPart); 
PREPARE COMMAND FROM @Stmt; 
EXECUTE COMMAND; 

有什麼辦法,我可以做這個?

+1

它抱怨哪種說法? – Barmar 2014-09-01 10:39:56

+0

第二個,虐待編輯它來表明。 – 2014-09-01 10:41:12

回答

1

由於您無法使用預處理語句執行USE語句,因此您必須準備好所有查詢,以便將數據庫名稱替換爲它們。

+0

這似乎是一個奇怪的限制,但如果這是我必須這樣做的方式,那麼我會這樣做。謝謝! – 2014-09-01 10:50:05