我面临一个奇怪的问题。我正在使用node-mysql从NodeJS连接MySQL DB。下面是我正在创建的连接池。
mysql.createPool({
host : connectDB.mysql.hostname,
user : connectDB.mysql.username,
password : connectDB.mysql.password,
connectionLimit : connectDB.connectionLimit
});
我正在尝试使用事务并使用方法beginTransaction
开始事务我的要求是动态创建数据库和表。下面提到了创建数据库和表的示例查询。
CREATE SCHEMA IF NOT EXISTS `test` DEFAULT CHARACTER SET utf8; //Create the database
CREATE TABLE IF NOT EXISTS `test`.`test_table` (
`test_table_id` INT(11) NOT NULL AUTO_INCREMENT,
`test_table_key` VARCHAR(45) NOT NULL,
`test_table_value` TEXT NULL DEFAULT NULL,
PRIMARY KEY (`test_table_id`),
UNIQUE INDEX `test_table_id_UNIQUE` (`test_table_id` ASC))
ENGINE = InnoDB
DEFAULT CHARACTER SET = utf8
COMMENT = 'Test table.'
这里的问题是当我尝试回滚事务时数据库和创建的表没有得到回滚。要回滚,我使用事务回滚方法使用相同的事务连接。
connection.rollback(function() {
throw err;
});
任何帮助都将不胜感激。