PostgreSQL 中怎样生成 Sequence? 小弟初次使用PostgreSQL 想建立一个表格 其中第一字段为id 预设值其为主键 插入数据时 此列自动增加。 由于 PostgreSQL是网络数据库 我只知道通过具体操作建表 不知道如何设置才能生成Sequence? 谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先建立序列CREATE SEQUENCE "Record_Index_Seq" MINVALUE -2147483648;其中Record_Index_Seq为sequence的名称,注意双引号,-2147483648该值不设置也可以,是序列的最小值,默认为0.建立表时,按如下用:"CallIndex" INTEGER PRIMARY KEY DEFAULT NEXTVAL('"Record_Index_Seq"'), 给你个例子吧--创建通话记录索引表"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")); 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 |+----+---------+ == 思想重于技巧 == 大哥,postgres数据库中如果有AUTO_INCREMENT,那真是太 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 TABLEt_girl=# insert into t_serial(c_str) values ('wangwei'),('wangli'),('lulu');INSERT 0 3t_girl=# select * from t_serial; id | c_str ----+---------------------- 1 | wangwei 2 | wangli 3 | lulu (3 rows)t_girl=# create table user("userid" BIGSERIAL,"username" varchar(55)) BIGSERIAL 相当于MYSQL中的BIGINT AUTO_INCREMENT group前需取得倒序数据,有什么好方法吗? 关于decimal类型字段的问题,帮帮忙~ information_schema里面根本不正确 Mysql怎么去解析xxx,xxxxxx,xx,xxx,xxxxx,xx,x,xxxx, 如何才能建立mysql的数据源 一个时间排序的问题。。有点复杂 sql排名问题 请看这条sql? mysql头文件问题(windows) 如何通过ADO在MYSQL里存储图片 MYSQL 字符类型,日期数据查询问题! 各位帮我看看语句有错么??
CREATE SEQUENCE "Record_Index_Seq" MINVALUE -2147483648;其中Record_Index_Seq为sequence的名称,注意双引号,-2147483648该值不设置也可以,是序列的最小值,默认为0.建立表时,按如下用:
"CallIndex" INTEGER PRIMARY KEY DEFAULT NEXTVAL('"Record_Index_Seq"'),
--创建通话记录索引表"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")
);
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 |
+----+---------+
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=#
"userid" BIGSERIAL,
"username" varchar(55)
)