5.2交互代码执行

MySQL Shell的默认模式为您在命令提示符下键入的数据库操作提供交互式执行。这些操作可以根据当前的情况用JavaScript、Python或SQL编写第5.1节“主动语言”.执行时,操作结果显示在屏幕上。

与其他语言解释器一样,MySQL Shell在语法方面非常严格。例如,下面的JavaScript代码片段打开一个到MySQL服务器的会话,然后读取并打印集合中的文档:

var mySession = mysqlx.getSession('user:pwd@localhost');var result = myssession . getschema ('world_x').getCollection('countryinfo').find().execute();var record = result.fetchOne();而(记录){print(记录);record = result.fetchOne();}

如上所示,调用find ()的后面跟着execute ()函数。CRUD数据库命令只在MySQL服务器上实际执行execute ()被称为。然而,当与MySQL Shell交互工作时,execute ()是隐式调用当您按返回在声明中。然后获取操作结果并显示在屏幕上。这是你打电话的规矩execute ()或否如下:

  • 当以这种方式使用MySQL Shell时,调用execute ()在以下情况下变为可选:

    • Collection.add ()

    • Collection.find ()

    • Collection.remove ()

    • Collection.modify ()

    • Table.insert ()

    • Table.select ()

    • Table.delete ()

    • Table.update ()

  • 如果对象被赋值给变量,自动执行将被禁用。在这样的情况下呼唤execute ()该操作为必选项。

  • 当处理一行时,函数返回任何可用的结果对象时,Result对象中包含的信息会自动显示在屏幕上。返回Result对象的函数包括:

    • SQL执行和CRUD操作(上面列出的)

    • 两者中的会话对象的事务处理和删除函数mysql而且mysqlx模块:

      • startTransaction ()

      • commit ()

      • rollback ()

      • dropSchema ()

      • dropCollection ()

      • ClassicSession.runSql ()

根据上述规则,MySQL Shell在交互模式下建立会话、查询和打印集合中的文档所需的语句如下:

mysql-js> var mySession = mysqlx.getSession('user:pwd@localhost');mysql-js > mySession.getSchema (world_x) .getCollection (countryinfo); ();

没有电话execute (),然后自动打印Result对象。

多重线支持

可以在多行上指定语句。在Python或JavaScript模式下,当语句块开始时,如函数定义、if/then语句、for循环等,将自动启用多行模式。在SQL模式下多行模式启动时执行命令发行。

一旦启动多行模式,随后输入的语句将被缓存。

例如:

mysql > \…创建过程get_actors()…开始……Select first_name from sakila.actor;...结束……
请注意

命令时,不能使用多线模式\ sql命令,在另一种语言激活时执行单个SQL语句。该命令只接受单行上的单个SQL查询。