8.1 事务处理

事务可以用来将操作分组为一个原子单元。在一个事务中的所有操作要么全部成功提交,要么全部失败。只要事务还没有提交,就可以回滚事务。

可以使用 startTransaction() 方法在会话中启动事务,使用 commitTransaction() 方法提交事务,使用 rollbackTransaction() 方法取消或回滚事务。下面是一个示例。该示例假定 test 模式存在,并且 my_collection 集合不存在。

Press CTRL+C to copy
var mysqlx = require('mysqlx'); // Connect to server var session = mysqlx.getSession( { host: 'localhost', port: 33060, user: 'user', password: 'password' } ); // Get the Schema test var db = session.getSchema('test'); // Create a new collection var myColl = db.createCollection('my_collection'); // Start a transaction session.startTransaction(); try { myColl.add({name: 'Rohit', age: 18, height: 1.76}).execute(); myColl.add({name: 'Misaki', age: 24, height: 1.65}).execute(); myColl.add({name: 'Leon', age: 39, height: 1.9}).execute(); // Commit the transaction if everything went well session.commit(); print('Data inserted successfully.'); } catch (err) { // Rollback the transaction in case of an error session.rollback(); // Printing the error message print('Data could not be inserted: ' + err.message); }