每个模块用户的主键? PostgreSQL的

时间:2017-01-06 15:29:02

标签: postgresql primary-key

我在PostgreSQL中制作数据库,我需要一些帮助。

用户控件使用LDAP,我有一个名为modules的表,其中我放置了有关系统模块的所有信息,

然后我创建了一个名为user_module的表,其中我放置了用户名和引用模块的整数(在模块表中),在此表中,您可以添加/删除行,我想我不会'需要一个主要的钥匙或不是吗?

我使用的是PgAdmin III,它说"我只能查看此表中的数据,我需要创建一个主编进行编辑"

表格代码

CREATE TABLE public.adm_mod_usu
(
  cusuario text NOT NULL,
  cmodulo_det integer NOT NULL,
  CONSTRAINT fk_adm_mod_usu_cmodulo_det FOREIGN KEY (cmodulo_det)
      REFERENCES public.adm_mod_det (cmodulo_det) MATCH SIMPLE
      ON UPDATE RESTRICT ON DELETE RESTRICT,
  CONSTRAINT fk_adm_mod_usu_unique_cpermiso UNIQUE (cusuario, cpermiso)
  USING INDEX TABLESPACE sistema_index
)
WITH (
  OIDS=FALSE
);
ALTER TABLE public.adm_mod_usu
  OWNER TO postgres;
GRANT ALL ON TABLE public.adm_mod_usu TO public;
GRANT ALL ON TABLE public.adm_mod_usu TO postgres;

1 个答案:

答案 0 :(得分:0)

在a_horse_with_no_name的帮助下:

ALTER TABLE public.adm_mod_usu DROP CONSTRAINT fk_adm_mod_usu_unique_cpermiso; 
ALTER TABLE public.adm_mod_usu 
   ADD CONSTRAINT fk_adm_mod_usu PRIMARY KEY (cusuario, cpermiso) 
USING INDEX TABLESPACE sistema_index;

我将唯一约束更改为primary。