小弟初次使用PostgreSQL  想建立一个表格 其中第一字段为id 预设值其为主键 插入数据时 此列自动增加。 
  由于 PostgreSQL是网络数据库 我只知道通过具体操作建表 不知道如何设置才能生成Sequence?
  谢谢!

解决方案 »

  1.   

    先建立序列
    CREATE SEQUENCE "Record_Index_Seq" MINVALUE -2147483648;其中Record_Index_Seq为sequence的名称,注意双引号,-2147483648该值不设置也可以,是序列的最小值,默认为0.建立表时,按如下用:
    "CallIndex" INTEGER PRIMARY KEY DEFAULT NEXTVAL('"Record_Index_Seq"'),
      

  2.   

    给你个例子吧
    --创建通话记录索引表"CallRecordTable"    --{(1,非长期保存),(10,长期保存)}
    CREATE SEQUENCE "Record_Index_Seq" MINVALUE -2147483648;
    CREATE TABLE "CallRecordTable"
    (
    "CallIndex" INTEGER PRIMARY KEY DEFAULT NEXTVAL('"Record_Index_Seq"'),
    "CallerNumber" VARCHAR(32) NOT NULL DEFAULT 'anonymous',
    "CalleeNumber" VARCHAR(32) NOT NULL DEFAULT 'anonymous',
    "StartTime" VARCHAR(16) NOT NULL,
    "StopTime" VARCHAR(16) NOT NULL,
    "StoreFlag" SMALLINT NOT NULL CONSTRAINT Record_Flag_Value CHECK("StoreFlag" >= 1 AND "StoreFlag" <= 10) DEFAULT 1,
    "ReGenrationID" VARCHAR(32) NOT NULL REFERENCES "RegenServiceInfoTable" ("ReGenrationID") ON DELETE CASCADE ON UPDATE CASCADE,
    CONSTRAINT Caller_Start_OnlyOne UNIQUE("CallerNumber","StartTime"),
    CONSTRAINT Callee_Start_OnlyOne UNIQUE("CalleeNumber","StartTime"),
    CHECK("StartTime" <= "StopTime")
    );
      

  3.   

    CREATE TABLE animals (
         id MEDIUMINT NOT NULL AUTO_INCREMENT,
         name CHAR(30) NOT NULL,
         PRIMARY KEY (id)
     );INSERT INTO animals (name) VALUES 
        ('dog'),('cat'),('penguin'),
        ('lax'),('whale'),('ostrich');SELECT * FROM animals;+----+---------+
    | id | name    |
    +----+---------+
    |  1 | dog     |
    |  2 | cat     |
    |  3 | penguin |
    |  4 | lax     |
    |  5 | whale   |
    |  6 | ostrich |
    +----+---------+
    == 思想重于技巧 ==
      

  4.   

    大哥,postgres数据库中如果有AUTO_INCREMENT,那真是太
      

  5.   


    t_girl=# create table t_serial(id serial not null,c_str char(20));
    NOTICE:  CREATE TABLE will create implicit sequence "t_serial_id_seq" for serial column "t_serial.id"
    CREATE TABLE
    t_girl=# insert into t_serial(c_str) values ('wangwei'),('wangli'),('lulu');
    INSERT 0 3
    t_girl=# select * from t_serial;
     id |        c_str         
    ----+----------------------
      1 | wangwei             
      2 | wangli              
      3 | lulu                
    (3 rows)t_girl=# 
      

  6.   

    create table user(
    "userid" BIGSERIAL,
    "username" varchar(55)
    )
      

  7.   

    BIGSERIAL 相当于MYSQL中的BIGINT AUTO_INCREMENT