一起执行CREATE TABLE和CREATE INDEX语句时出错

时间:2013-01-29 11:52:13

标签: mysql sql jdbc groovy ddl

我正在尝试运行 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 ,它也可以正常工作。

我错过了什么?当我同时执行这两个语句时,为什么会出现此错误?

0 个答案:

没有答案