X DevAPI 用户指南  / 第 8 章语句执行  /  8.1 交易处理

8.1 交易处理

事务可用于将操作分组到一个原子单元中。事务的所有操作要么在提交时成功,要么都不成功。只要尚未提交,就可以回滚事务。

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

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);
}