在PostgreSQL中,当使用psql运行查询时,您可以从命令行传递命名参数。例如,如果您运行如下命令:
psql -v v1=12 -f query.sql
在query.sql中,您可以像这样引用v1:
select * from table_1 where id = :v1;
MySQL是否支持类似的功能?
发布于 2016-08-03 01:59:29
一个存储过程示例。
DROP PROCEDURE IF EXISTS so_gibberish.blahBlah7;
DELIMITER $$
CREATE DEFINER=`root`@`localhost` PROCEDURE so_gibberish.blahBlah7
(
)
BEGIN
select CONCAT('The variable is ',@myVar) AS 'theAnswer';
END$$
DELIMITER ;
测试它:
OS Prompt> mysql -uroot -p so_gibberish -e "set @myVar='Hank Aaron'; call blahBlah7();"
Enter password: ********
+----------------------------+
| theAnswer |
+----------------------------+
| The variable is Hank Aaron |
+----------------------------+
so_gibberish
是数据库名称。-e
表示运行此查询。
@myVar
成为一个基于连接的用户变量。
https://stackoverflow.com/questions/38725356
复制相似问题