没有序列和触发器,没有简单的方法可以做到这一点吗?我有平均的SQL技能,我想使用pl/sql(PostgreSQL)的行业标准方法.我基本上是从Spring Security转换这个示例表:
create table group_members (
id bigint generated by default as identity(start with 0) primary key,
username varchar(50) not null,
group_id bigint not null,
constraint fk_group_members_group foreign key(group_id) references groups(id));
Run Code Online (Sandbox Code Playgroud)
到目前为止我所拥有的:
CREATE TABLE auth_group_members (
id NUMBER,
username VARCHAR(50) NOT NULL,
group_id NUMBER NOT NULL,
CONSTRAINT "FK_AuthGroupMembers" FOREIGN KEY(group_id) REFERENCES auth_groups(id)
);
Run Code Online (Sandbox Code Playgroud)
mu *_*ort 13
标准方法是使用serial或bigserial:
数据类型serial和bigserial不是真正的类型,而只是用于创建唯一标识符列的符号方便(类似于某些其他数据库支持的AUTO_INCREMENT属性).
[...]
因此,我们创建了一个整数列,并安排其默认值从序列生成器分配.
所以你用这样的东西创建表:
CREATE TABLE auth_group_members (
id bigserial primary key,
username VARCHAR(50) NOT NULL,
group_id NUMBER NOT NULL,
CONSTRAINT "FK_AuthGroupMembers" FOREIGN KEY(group_id) REFERENCES auth_groups(id)
);
Run Code Online (Sandbox Code Playgroud)
该serial和bigserial类型确实创造了一个幕后序列,但你从来没有直接的序列工作.
| 归档时间: |
|
| 查看次数: |
2990 次 |
| 最近记录: |