我正在尝试运行 CREATE TABLE 语句,后跟 CREATE INDEX 。
这是我的代码
def simpleCreateStructureTemplate = new SimpleTemplateEngine().createTemplate('''
CREATE TABLE $name(
${lowname}Id INTEGER PRIMARY KEY AUTO_INCREMENT,
$fields
);
CREATE INDEX ${lowname}Idx ON $name(${lowname}Id) USING BTREE;''')
def binding = [
name : dao.tablename,
lowname : dao.tablename.toLowerCase(),
fields : dao.schema.collect{ key, val ->
" ${key.padRight(12)} $val"
}.join(",\n")
]
def stmt = this.simpleCreateStructureTemplate.make(binding).toString()
this.sql.execute stmt
执行此代码段会增加与SQL语法相关的典型错误(在本例中为 CREATE INDEX 语句)。
如果我在MySQL Workbench上运行生成的sql代码(并在显示错误时显示在控制台上),它运行顺畅(我仔细检查了它!)。
现在,如果我拆分此代码并运行 CREATE TABLE 部分,然后运行 CREATE INDEX ,它也可以正常工作。
我错过了什么?当我同时执行这两个语句时,为什么会出现此错误?