我有一个名为(art_almacen)的表,其中包含仓库(calmacen)中的文章(carticle),现在,我如何检查(使用约束)任何仓库都有重复的文章?例如:
如果我有一个Id = 3的仓库,并且它有3篇文章(1,2,3),当我尝试添加另一篇文章时,例如3,阻止我,因为仓库3已经有一篇文章3 < / p>
这是我的表SQL
global $wp_query;
$postObj = $wp_query->post;
使用PostgreSQL
答案 0 :(得分:3)
看起来你需要两列UNIQUE CONSTRAINT(电报,文章)。在这种情况下,DB不允许您有两行具有相同的仓库和物品组合。像这样:
CREATE TABLE example (
a integer,
wirehouse integer,
article integer,
UNIQUE (wirehouse, article)
);
答案 1 :(得分:1)
创建复合PK:
t=# CREATE TABLE public.art_almacen
(
cart_almacen serial,--integer NOT NULL DEFAULT nextval('seq_art_almacen'::regclass),
calmacen integer NOT NULL,
carticulo integer NOT NULL,
cant numeric(11,2) NOT NULL,
CONSTRAINT fk_art_almacen PRIMARY KEY (cart_almacen,calmacen )
USING INDEX TABLESPACE sistema_index
)
;
CREATE TABLE
t=# insert into public.art_almacen select 1,1,1,1;
INSERT 0 1
t=# insert into public.art_almacen select 1,2,1,1;
INSERT 0 1
t=# insert into public.art_almacen select 2,1,1,1;
INSERT 0 1
t=# insert into public.art_almacen select 2,2,1,1;
INSERT 0 1
t=# insert into public.art_almacen select 1,2,1,1;
ERROR: duplicate key value violates unique constraint "fk_art_almacen"
DETAIL: Key (cart_almacen, calmacen)=(1, 2) already exists.