PostgreSQL 序列增删改案例
创建序列
CREATESEQUENCEifnotexiststest_mergetable_id_seq INCREMENT1 MINVALUE1 MAXVALUE999999999 START1 CACHE1; //或者: createsequenceifnotexiststest_mergetable_id_seqincrementby1minvalue1nomaxvaluestartwith1;
指定序列(给表的主键指定创建好的序列)
altertabletest_mergetablealtercolumn"i_id"setdefaultnextval('test_mergetable_id_seq');
设置序列自增长从当前最大值开始
SELECTsetval('test_mergetable_id_seq',(SELECTMAX(i_id)FROMtest_mergetable)); altersequencetest_mergetable_id_seqstartwith12;
删除序列
dropsequenceIFEXISTStest_mergetable_id_seq
查看序列
SELECTnextval('test_mergetable_id_seq')
补充:pgsql的schema对用户授权,单个用户跨schema增删改查操作
--创建用户
createuseruser1;
--修改密码
alteruserreportwithpassword'password';
--授权查询权限
grantusageonschemaschema1touser1; grantusageonschemaschema2touser1;
修改search_path可跨schema操作
setsearch_path="$user",user1,user2
--授权schema:schema1给user1权限这个权限太大需要慎用
grantallonschemaschema1touser1;
--授权schema的表权限给user1用户权限太多需慎用
grantallonalltablesinschemaschema1touser1;
--授权schema的表权限给user1用户权限太多需慎用
grantallonalltablesinschemaschema1touser1;
--授权某个schema的单个表查权限
grantselectonschema2.table1touser1;
--收回所有授权
revokeallonalltablesinschemaschema1fromuser1;
--为某个特定用户设置search_path
alteruseruser1setsearch_path="$user",user1,user2;
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。