CREATE TABLE IF NOT EXISTS public.slice_user
(
id integer NOT NULL DEFAULT nextval('slice_user_id_seq'::regclass),
user_id integer,
slice_id integer,
CONSTRAINT slice_user_pkey PRIMARY KEY (id),
CONSTRAINT fk_slice_user_slice_id_slices FOREIGN KEY (slice_id)
REFERENCES public.slices (id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE CASCADE,
CONSTRAINT fk_slice_user_user_id_ab_user FOREIGN KEY (user_id)
REFERENCES public.ab_user (id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE CASCADE
)
TABLESPACE pg_default;
ALTER TABLE IF EXISTS public.slice_user
OWNER to superset_test;- 表名和模式:表名为
slice_user,存放在public模式中。 - 列定义:
id:整数类型,非空,默认值为序列slice_user_id_seq的下一个值。user_id:整数类型。slice_id:整数类型。
- 主键约束:
slice_user_pkey:主键约束,作用于id列,确保每行的id是唯一的。
- 外键约束:
fk_slice_user_slice_id_slices:外键约束,slice_id引用public.slices表的id列。约束条件为:
ON UPDATE NO ACTION:当引用的slices表中的id更新时,不采取任何动作。ON DELETE CASCADE:当引用的slices表中的id删除时,自动删除slice_user表中对应的行。
fk_slice_user_user_id_ab_user:外键约束,user_id引用public.ab_user表的id列。约束条件为:
ON UPDATE NO ACTION:当引用的ab_user表中的id更新时,不采取任何动作。ON DELETE CASCADE:当引用的ab_user表中的id删除时,自动删除slice_user表中对应的行。
- 表空间:
TABLESPACE pg_default表示表存储在默认表空间中。 - 修改表所有者:将
public.slice_user表的所有者更改为superset_test用户。
CONSTRAINT用于定义数据库表中的约束条件,这些约束用于确保数据的一致性和完整性。约束条件可以应用于表中的列或整个表。常见的约束类型包括PRIMARY KEY、FOREIGN KEY、UNIQUE、CHECK和NOT NULL。
1. PRIMARY KEY 约束
作用:指定表中的一个或多个列作为主键。主键的值必须唯一且非空。一个表只能有一个主键。
示例:
CONSTRAINT slice_user_pkey PRIMARY KEY (id)
解释:slice_user_pkey约束指定id列为主键,确保每个id值在表中是唯一且非空的。
2. FOREIGN KEY 约束
作用:指定一个或多个列作为外键,这些列引用另一表的主键。外键用于确保引用完整性,即确保在引用表中存在对应的值。
示例:
CONSTRAINT fk_slice_user_slice_id_slices FOREIGN KEY (slice_id)
REFERENCES public.slices (id) MATCH SIMPLE
ON UPDATE NO ACTION
ON DELETE CASCADE
解释:
-
fk_slice_user_slice_id_slices约束指定slice_id列为外键,引用public.slices表的id列。 -
MATCH SIMPLE表示在大多数情况下,只要引用的列值相等就满足约束条件。 -
ON UPDATE NO ACTION:当public.slices表中的id更新时,不对slice_user表中的数据进行任何操作。 -
ON DELETE CASCADE:当public.slices表中的id删除时,自动删除slice_user表中引用该id的行。
3. UNIQUE 约束
作用:确保列中的所有值是唯一的,允许空值,但空值必须唯一。
示例:
CONSTRAINT unique_user_email UNIQUE (email)
解释:假设在users表中有一列email,unique_user_email约束确保每个用户的电子邮件地址是唯一的。
4. CHECK 约束
作用:确保列中的值符合指定的条件,可以用于验证数据范围、格式等。
示例:
CONSTRAINT check_user_age CHECK (age >= 18)
解释:假设在users表中有一列age,check_user_age约束确保用户的年龄必须大于或等于18。
5. NOT NULL 约束
作用:确保列中的值不为空。
示例:
name VARCHAR(255) NOT NULL
解释:假设在users表中有一列name,NOT NULL约束确保每个用户的名字不能为空。
















