45

pgsqlでは、いくつかの値のテーブルを持ち、そのうちの1つ(other_idなど)を選択し、その最大値を見つけて、テーブルに配置されるすべての新しいエントリをその値からインクリメントする方法はありますか.

私は、これが働くチャンスを得るにはあまりにも簡単だったと思います..

ALTER TABLE address ALTER COLUMN new_id TYPE SERIAL

____________________________________ 
ERROR:  type "serial" does not exist

洞察に感謝します!

4

3 に答える 3

51

データ型 serialの postgresql ドキュメントを参照してください。シリアルは省略形のみです。

CREATE TABLE tablename (
    colname SERIAL
);

次を指定するのと同じです。

CREATE SEQUENCE tablename_colname_seq;
CREATE TABLE tablename (
    colname integer NOT NULL DEFAULT nextval('tablename_colname_seq')
);
ALTER SEQUENCE tablename_colname_seq OWNED BY tablename.colname;
于 2013-05-10T03:35:15.867 に答える