关于主键的创建修改删除
最后更新:2024-09-04 05:30:01
|
状态:未完成
创建主键
可以在添加列时就指定当前列作为主键
table.addColumn("ID", "INT").setPrimary(true);
table.addColumn("CODE", "INT").setPrimary(true);
也可以在表上单独设置主键
table.setPrimaryKey("ID","CODE");
列顺序
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);
主键名称有些数据库不支持设置主键名,所以会忽略
可以在添加列时就指定当前列作为主键
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);
主键名称有些数据库不支持设置主键名,所以会忽略