我有很多存储过程在做一堆alter,create等......我希望在每个过程中看到哪一个正在执行。
DELIMITER |
DROP PROCEDURE IF EXISTS test1|
CREATE PROCEDURE test1()
BEGIN
IF /*select ... */ THEN
BEGIN
SELECT "hello world";
END;
END IF;
END|
DROP PROCEDURE IF EXISTS test2|
CREATE PROCEDURE test2()
BEGIN
IF /*select ... */ THEN
BEGIN
SELECT "hello world 2";
END;
END IF;
END|
DELIMITER ;
CALL test1();
CALL test2();
然后我称之为:
cat proc.sql | mysql -uroot -p mydb
输出:
hello world
hello world
hello world 2
hello world 2
root@localhost:test> select version();
+-------------------------+
| version() |
+-------------------------+
| 5.5.44-0ubuntu0.14.04.1 |
+-------------------------+
为什么它会显示两次?
答案 0 :(得分:2)
显示列名称和值。
mysql> CALL test1();
+-------------+
| hello world | <- Column name
+-------------+
| hello world | <- Value
+-------------+
1 row in set (0,00 sec)
如果为列指定了别名:
...
SELECT "hello world" `column_name`;
...
输出:
column_name
hello world
<强>更新强>
使用:
$ cat proc.sql | mysql -uroot -p -N mydb
输出:
hello world
hello world 2