关于主键的创建修改删除

最后更新:2024-01-21 05:30:07 | 状态:未完成
创建主键
可以在添加列时就指定当前列作为主键
 table.addColumn("ID", "INT").setPrimary(true);
 table.addColumn("CODE", "INT").setPrimary(true);

也可以在表上单独设置主键
table.setPrimaryKey("ID","CODE");


也可以创建主键对象
PrimaryKey pk = new PrimaryKey();
pk.addColumn("ID").addColumn("CODE");
table.setPrimaryKey(pk);


删除主键
保存表结构时删除
table.getPrimaryKey().delete();
service.save(table);

直接删除主键对象

pk = table.getPrimaryKey();
service.ddl().drop(pk);

new PrimaryKey(); //注意有些数据库需要主键名称才能删除,所以这样不适用
pk.setTable("c_test");
service.ddl().drop(pk);


修改主键
pk = new PrimaryKey();
pk.addColumn("ID").addColumn("NAME");
table.setPrimaryKey(pk);
service.ddl().save(table);
mysql:ALTER TABLE simple.c_test DROP PRIMARY KEY, ADD PRIMARY KEY (ID, NAME)
pg:ALTER TABLE simple.public.c_test DROP CONSTRAINT pk_c_test, ADD PRIMARY KEY (ID, NAME)


列顺序
pk = new PrimaryKey().setName("pk_test");
pk.addColumn("ID", "ASC", 1).addColumn("CODE", "DESC",0); //部分数据库中支持设置ASC DESC
或pk.setPosition("ID",2).setPosition("CODE",1);
table.setPrimaryKey(pk);


主键名称有些数据库不支持设置主键名,所以会忽略

最近更新 搜索 提交