- A.4.1。MySQL 8.0是否支持存储过程和函数?
- A.4.2。在哪里可以在哪里找到MySQL存储10bet官方网站过程和存储功能的文档?
- A.4.3。有没有讨论论坛的MySQL存储过程?
- A.4.4。哪里可以找到存储过程的ANSI SQL 2003规范?
- A.4.5。您如何管理存储的例程?
- A.4.6。是否有一种方法可以查看给定数据库中的所有存储过程和存储函数?
- A.4.7。存储过程存储在哪里?
- A.4.8。是否可以将存储过程或存储的函数分组到包中?
- A.4.9。存储过程可以调用另一个存储过程吗?
- A.4.10。存储过程可以调用触发器吗?
- A.4.11。存储过程可以访问表吗?
- A.4.12。存储过程是否有引发应用程序错误的语句?
- A.4.13。存储过程是否提供异常处理?
- A.4.14。MySQL 8.0存储的例程是否返回结果集?
- A.4.15。是否支持存储程序的重新编译?
- A.4.16。是否有一个相当于使用mod_plsql作为apache上的网关,以直接通信数据库中的存储过程?
- A.4.17。我可以将数组作为输入传递给存储过程吗?
- A.4.18。我可以将光标作为参数传递给存储过程吗?
- A.4.19。我可以从存储过程中将光标作为Out参数返回吗?
- A.4.20。我可以在存储的例程中打印变量的值以供调试之用吗?
- A.4.21。我可以在存储过程中提交或回滚事务吗?
- A.4.22。MySQL 8.0存储过程和功能是否使用复制?
- A.4.23。复制源服务器上创建的存储过程和函数是否已复制到副本?
- A.4.24。如何复制存储过程和函数中发生的操作?
- A.4.25。是否有特殊的安全要求使用存储过程和功能以及复制?
- A.4.26。复制存储过程和函数操作存在哪些限制?
- A.4.27。上述限制是否影响MySQL做点时间恢复的能力?
- A.4.28。正在采取什么措施来纠正上述限制?
A.4.1。 |
MySQL 8.0是否支持存储过程和函数? |
是的。MySQL 8.0支持两种类型的存储例程,存储过程和存储函数。 |
|
A.4.2。 |
在哪里可以在哪里找到MySQL存储10bet官方网站过程和存储功能的文档? |
A.4.3。 |
有没有讨论论坛的MySQL存储过程? |
A.4.4。 |
哪里可以找到存储过程的ANSI SQL 2003规范? |
不幸的是,官方规范没有自由(ANSI使其购买)。但是,有书,如sql - 99完成,真的由Peter Gulutzan和Trudy Pelzer提供全面的标准概述,包括覆盖存储程序。 |
|
A.4.5。 |
您如何管理存储的例程? |
为存储例程使用明确的命名方案总是一个好习惯。可以使用 |
|
A.4.6。 |
是否有一种方法可以查看给定数据库中的所有存储过程和存储函数? |
是的。对于命名的数据库
有关更多信息,请参阅第26.3.30节,“INFORMATION_SCHEMA例程表”. 可以使用存储例程的主体使用 |
|
A.4.7。 |
存储过程存储在哪里? |
存储过程存储在 你也可以使用 |
|
A.4.8。 |
是否可以将存储过程或存储的函数分组到包中? |
不,MySQL 8.0不支持这一点。 |
|
A.4.9。 |
存储过程可以调用另一个存储过程吗? |
是的。 |
|
A.4.10。 |
存储过程可以调用触发器吗? |
存储过程可以执行SQL语句,例如 |
|
A.4.11。 |
存储过程可以访问表吗? |
是的。存储过程可以根据需要访问一个或多个表。 |
|
A.4.12。 |
存储过程是否有引发应用程序错误的语句? |
是的。MySQL 8.0实现了SQL标准 |
|
A.4.13。 |
存储过程是否提供异常处理? |
MySQL实现 |
|
A.4.14。 |
MySQL 8.0存储的例程是否返回结果集? |
存储过程可以,但存储的函数不能。如果你表现平平 |
|
A.4.15。 |
是 |
不在MySQL 8.0中。 |
|
A.4.16。 |
是否有一个相当于使用的MySQL |
MySQL 8.0中没有等同物。 |
|
A.4.17。 |
我可以将数组作为输入传递给存储过程吗? |
不在MySQL 8.0中。 |
|
A.4.18。 |
我可以将光标作为一个 |
在MySQL 8.0中,游标仅在存储过程中可用。 |
|
A.4.19。 |
我可以返回一个游标作为一个 |
在MySQL 8.0中,游标仅在存储过程中可用。但是,如果您没有打开光标 |
|
A.4.20。 |
我可以在存储的例程中打印变量的值以供调试之用吗? |
是的,你可以在存储过程,但不是在存储函数中。如果你表现平平 |
|
A.4.21。 |
我可以在存储过程中提交或回滚事务吗? |
是的。但是,您无法在存储的函数中执行事务性操作。 |
|
A.4.22。 |
MySQL 8.0存储过程和功能是否使用复制? |
是的,存储过程和函数中执行的标准操作将从复制源服务器复制到副本。中详细描述了一些限制第25.7节“存储程序二进制记录”. |
|
A.4.23。 |
复制源服务器上创建的存储过程和函数是否已复制到副本? |
是的,通过复制源服务器上的正常DDL语句进行存储过程和函数的创建被复制到副本,以便两个服务器上存在对象。 |
|
A.4.24。 |
如何复制存储过程和函数中发生的操作? |
MySQL记录存储过程中发生的每个DML事件,并将这些单独的操作复制到一个副本中。执行存储过程的实际调用不会被复制。 更改数据的存储函数被记录为函数调用,而不是每个函数内部发生的DML事件。 |
|
A.4.25。 |
是否有特殊的安全要求使用存储过程和功能以及复制? |
是的。由于副本具有权限执行从源的二进制日志中读取的任何语句,因此使用存储函数的特殊安全约束存在于复制。如果常用复制或二进制记录(用于时间点恢复)是活动的,那么MySQL DBA有两个安全选项对它们打开:
|
|
A.4.26。 |
复制存储过程和函数操作存在哪些限制? |
嵌入在存储过程中的非确定性(随机)或基于时间的动作可能无法正常复制。通过他们的本性,随机产生的结果不是可预测的,不能完全转载;因此,复制到副本的随机动作不会镜像在源上执行的。声明存储的函数 另外,不能在副本上再现基于时间的动作,因为在存储过程中的这些动作的定时不能通过用于复制的二进制日志来再现。它仅记录DML事件,并且不计时约束。 最后,在大DML动作(例如批量插入件)期间发生错误的非译本表可以遇到复制问题,因为可以从DML活动部分地更新源,但由于发生的错误,没有对副本进行更新。解决方法是使用函数的DML操作来执行 |
|
A.4.27。 |
上述限制是否影响MySQL做点时间恢复的能力? |
影响复制的相同限制会影响时间点恢复。 |
|
A.4.28。 |
正在采取什么措施来纠正上述限制? |
您可以选择基于语句的复制或基于行的复制。原始复制实现基于基于语句的二进制日志记录。基于行的二进制日志记录解决了前面提到的限制。 混合复制也可用(通过使用 有关其他信息,请参见第17.2.1节“复制格式”. |