会话现在可以获得由find或select语句返回的文档或行的锁,以防止在持有锁时从其他会话更改返回值(前提是使用适当的隔离级别)。对于给定的find或select语句,可以多次请求锁。只有最后的请求才会被执行。获得的锁一直持有到当前事务结束。
对于X DevAPI,
CollectionFind
而且TableSelect
实现.lockExclusive ()
而且.lockShared ()
方法,这些方法分别对返回的文档或行请求独占锁或共享锁。之后可以调用这些方法.bind ()
在期末考试之前. execute ()
.对于X DevAPI For C,新的
mysqlx_set_locking (
函数可以请求对返回的文档或行进行独占或共享锁,或者释放锁。的支撑
,锁
)锁
参数可以为ROW_LOCK_EXCLUSIVE
,ROW_LOCK_SHARED
,或ROW_LOCK_NONE
.前两个值指定要获取的锁类型。ROW_LOCK_NONE
从语句中移除任何行锁定请求。对于X DevAPI,一个新的
身份验证
选项可以在连接字符串或uri中指定,以指示身份验证机制。允许的值为平原
而且MYSQL41
.选项名和值不区分大小写。的SessionSettings:选项
对象支持新的身份验证
枚举,具有相同的允许值。对于X DevAPI For C,一个新的
身份验证
设置可以在连接字符串或uri中指定,以指示身份验证机制。允许的值为平原
而且MYSQL41
.选项名和值不区分大小写。一个新的MYSQLX_OPT_AUTH
常数是由mysqlx_options_set ()
函数,使用允许的值MYSQLX_AUTH_PLAIN
而且MYSQLX_AUTH_MYSQL41
.如果不指定认证机制,缺省为
平原
用于安全(TLS)连接,或MYSQL41
对于不安全的连接。对于Unix套接字连接,默认为平原
.查询和语句中使用的布尔表达式现在支持
在
运算符,其右侧操作数是求值为数组或文档的任何表达式。X DevAPI示例:
科尔。find("'car' IN $.toys").execute();
X DevAPI for C的例子:
res = mysqlx_collection_find(coll, "'car' IN $.toys");
在这种形式中,
在
运算符等价于JSON_CONTAINS ()
SQL函数。在Unix和类Unix系统上,Unix域套接字文件现在被支持作为X DevAPI或X DevAPI的C连接的连接传输。套接字文件可以在连接字符串或会话创建选项中给出。
X DevAPI示例:
XSession税(“mysqlx: / /用户:password@路径(/ / / mysql.sock) /模式”);XSession sess({SessionSettings::USER, " USER ", SessionSettings::PWD, "password, SessionSettings::SOCKET, "/path/to/mysql。sock" SessionSettings::DB, "schema"});
X DevAPI for C的例子:
Mysqlx_session_t *sess = mysqlx_get_session_from_url("mysqlx://user:password@(/path/to/mysql.sock)/schema", err_buf, &err_code);Mysqlx_opt_type_t *sess_opt = mysqlx_session_option_new();mysqlx_session_option_set(sess_opt, MYSQLX_OPT_SOCKET, "/path/to/mysql. mysqlx_session_option_set(sess_opt, MYSQLX_OPT_SOCKET, "sock", MYSQLX_OPT_USER, "用户",MYSQLX_OPT_PWD, "密码",MYSQLX_OPT_DB, "模式");Mysqlx_session_t *sess = mysqlx_get_session_from_options(sess_opt, err_buf, &err_code);
drop API更改如下:
会话::dropTable (
而且模式
,表格
)会话::dropCollection (
由模式
,科尔
)模式::dropTable (
而且表格
)模式::dropCollection (
,分别。科尔
)模式:dropView ()
现在是直接执行方法返回吗无效
而不是可执行的
.所有
下降
如果所删除的对象不存在,则方法成功。XXX
()
以下
集合
新增方法:addOrReplaceOne ()
,getOne ()
,replaceOne ()
,removeOne ()
.的
addOrReplaceOne ()
而且replaceOne ()
方法仅适用于MySQL 8.0.3及更高版本的服务器。对于较旧的服务器,它们会报告错误。