通过mysql控制台参数初始化用户定义的变量

时间:2011-12-07 17:01:40

标签: mysql

我想将用户定义参数的值传递给mysql控制台并使用如下:

example.sql

    SELECT (@somevar + 1) as my_sum;

用法示例

C:>bin\mysql -utest -p --xml **{somehow @somevar:=100}** < example.sql
<?xml version="1.0"?>
<resultset statement="SELECT (@somevar + 1) as my_sum"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <row>
        <field name="my_sum" xsi:nil="true" />
    </row>
</resultset>

有可能吗?

3 个答案:

答案 0 :(得分:2)

C:>bin\mysql --init-command="SET @somevar:=100"

mysql> select @somevar;
+----------+
| @somevar |
+----------+
|      100 |
+----------+

重新评论:

是的,奇怪的是它没有记录。但是你可以用mysql --help看到它。你也可以像我一样尝试它,看看它是否有效。

我已经记录了一个错误,要求将此选项添加到手册中。

http://bugs.mysql.com/bug.php?id=63672

答案 1 :(得分:1)

这应该有效

c:\bin>set somevar=1
c:\bin>mysql -e "select %a%+1 as my_sum"

答案 2 :(得分:0)

我想到的另一种解决方案(仅供参考):

C:>bin\mysql -utest -p --xml -e "SET @somevar:=100; source example.sql;"
<?xml version="1.0"?>
<resultset statement="SELECT (@somevar + 1) as my_sum"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <row>
        <field name="my_sum">101</field>
    </row>
</resultset>