修改表过程中新旧索引对比
最后更新:2024-09-01 05:30:20
|
状态:未完成
大部分数据库需要先删除 再创建。
另外要注意的时,新表中如果没有索引并不会删除,只有明确标记删除的索引才会被删除,就是调用过index.drop()方法的索引,在save或alter(table)时才会删除这个索引
是因为许多情况会生成索引,比如唯一约束也会生成个索引,但并不一定出现在table.index中
@Test public void index() throws Exception{ Table tab = service.metadata().table("tab_index"); if(null != tab){ service.ddl().drop(tab); } tab = new Table("tab_index"); tab.addColumn("id", "int"); tab.addColumn("code", "varchar(10)"); tab.addColumn("name", "varchar(10)"); Index idx_origin = new Index("idx_origin"); idx_origin.addColumn("code"); tab.add(idx_origin); service.ddl().create(tab); tab = service.metadata().table("tab_index"); //改个名 再加一列 tab.getIndex("idx_origin").addColumn("name").setNewName("idx_rename"); //新加一个 Index idx_new = new Index("idx_new"); idx_new.addColumn("name"); tab.add(idx_new); service.ddl().save(tab); }