2011-12-15 54 views
1

的用戶變量創建mysql視圖我正在使用mysql 5.5,試圖編寫腳本來創建用戶,視圖併爲這些視圖授予選擇特權。這是迄今爲止我所擁有的。如何使用名稱爲

set @type_id := 1; 
set @username := 'somecompany'; 
set @password := 'company1234'; 
set @prefix := 'somecompany'; 

CREATE OR REPLACE VIEW CONCAT(@prefix, '_report') AS 
SELECT * FROM my_table 
WHERE type_id = @type_id; 

哪個不會工作,因爲它不查找字符串的視圖名稱。我得到了解決這個用語句創建用戶:

INSERT INTO mysql.user (Host, User, Password) VALUES ('%', @username, PASSWORD(@password)); 

是否有類似的技巧,我可以用它來創建的意見,並就這些意見我創建的用戶授予選擇?

回答

0

您可以使用Prepared Statements來執行此查詢。只需將查詢構造爲一個字符串並使用預處理語句來運行它。


編輯

的MySQL 5.5.12日誌

SET @s = 'CREATE VIEW view_actor AS SELECT * FROM sakila.actor;'; 
PREPARE stmt2 FROM @s; 
EXECUTE stmt2; 
DEALLOCATE PREPARE stmt2; 


-- Check CREATE VIEW 
SHOW CREATE VIEW view_actor; 

CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`%` SQL SECURITY DEFINER VIEW `view_actor` AS select `sakila`.`actor`.`actor_id` AS `actor_id`,`sakila`.`actor`.`first_name` AS `first_name`,`sakila`.`actor`.`last_name` AS `last_name`,`sakila`.`actor`.`last_update` AS `last_update` from `sakila`.`actor` 
+0

http://dev.mysql.com/doc/refman/5.5/en/sql-syntax-prepared- statements.html 在5.5用戶手冊中,它具有可用於準備語句的查詢列表。創建視圖不能與任何我能找到的準備好的語句一起使用,並且它在工作臺中不適用於我。 – 2011-12-16 15:54:22