数据库管理

对表的管理

创建表

这里有一个关于创建 "users" 表的例子:

create table users (
    id serial primary key, -- id 自动递增
    name character varying, -- 指定字符串输出长度大小
    preferences jsonb, -- 字段类型为JSON非常适合存储非结构化的数据
    created_at timestamp without time zone -- 始终以UTC格式存储时间
);

你也有机会指定非空约束和默认值:

create table users (
    id serial primary key,
    name character varying not null,
    active boolean default true
);

删除表

drop table funky_users;

重命名表

alter table events rename to events_backup;

清空表

要非常小心这段代码,它会清空 PosgreSQL 表中的所有内容,在开发中很有用处,但是它很少想在生产环境中应用。

truncate my_table;

如果你又一个序列ID列,并且你想重启它的序列(既重启ID重1开始)

truncate my_table restart identity;

复制表

有时候表的复制对你很有用:

create table dupe_users as (select * from users);

-- 这个 'with no data' 意思是只有结构,没有实际的行
create table dupe_users as (select * from users) with no data;

添加列

这里有一个例子关于在 users 表中添加 created_at 时间戳列:

alter table users add column created_at timestamp without time zone;

添加一个 String ( varchar ) 类型并且设置非空约束的列:

alter table users add column bio string character varying not null;

添加一个 Boolean 类型并且设置默认值的列:

alter table users add column active boolean default true;

Last updated