我正在尝试将CYCLE应用于phpPgAdmin中的BIGSERIAL。
我已经看到了如何使用查询来完成这个任务,但是我更希望能够通过phpPgAdmin来完成它。
这能用phpPgAdmin来完成吗?如果是这样的话,是怎么做的?如果不是,如何将CYCLE应用于预先存在的BIGSERIAL列?
发布于 2014-02-10 07:27:57
我不使用phpPgAmin。
若要更改现有列定义以使用CYCLE属性,您需要理解这是序列的属性,而不是“列”。
serial或bigserial只是为从序列中获取的列分配默认值的速记符号。
将列定义为serial时,Postgres会自动创建序列并应用必要的默认表达式。
这个序列通常被称为<table_name>_<column_name>_seq。但是,您可以运行一个查询来获取生成序列的名称:
select pg_get_serial_sequence('your_table_name', 'your_column_name');一旦知道了序列的名称,就可以执行以下操作:
alter sequence your_sequence_name cycle;(请注意,如果不使用自动提交模式,则需要commit )。
以下是手册的一些相关链接:
ALTER SEQUENCE:http://www.postgresql.org/docs/current/static/sql-altersequence.htmlhttps://dba.stackexchange.com/questions/58565
复制相似问题