不,创建存储过程时,定义器部分不是必需的。当您要创建定义器时使用它。
从MySQL.user表中检查所有用户和主机-mysql> select user,host from mysql.user;
以下是输出-+------------------+-----------+
| user | host |
+------------------+-----------+
| Manish | % |
| User2 | % |
| mysql.infoschema | % |
| mysql.session | % |
| mysql.sys | % |
| root | % |
| Adam Smith | localhost |
| User1 | localhost |
| am | localhost |
+------------------+-----------+
9 rows in set (0.03 sec)
在这里,让我们创建一个名为Adam Smith的定义器。创建存储过程的查询如下-mysql> delimiter //
mysql> CREATE DEFINER = 'Adam Smith'@'localhost' procedure Sp_Definer()
-> begin
-> select 'Hello MySQL';
-> end;
-> //
mysql> delimiter ;
使用CALL命令调用存储过程。语法如下-CALL yourStoredProcedureName();
调用上面的存储过程。mysql> call Sp_Definer();
以下是输出。+-------------+
| Hello MySQL |
+-------------+
| Hello MySQL |
+-------------+
1 row in set (0.00 sec)