两个建表的语句,CREATE TABLE T_OaUser
(
  IDuser varchar2(6) NOT NULL,
  Name VARCHAR2(10)  NOT NULL ,
  Auth VARCHAR2(26) NOT NULL,
  Password   VARCHAR2(6) NOT NULL,
  Permission  NUMBER(1) ,
  Online1 Number(1),
  CONSTRAINT PK_T_OaUser PRIMARY KEY(IDuser,Name)
);
-- Create sequence SE_T_Clerk
create sequence SE_T_OaUser start with 1 increment by 1 nocache;
CREATE INDEX Ind_T_Oauser ON T_OaUser(IDuser);CREATE TABLE T_New
(
     IDNew NUMBER(6) NOT NULL,
     Title VARCHAR2(100) NOT NULL,    
     Teleastime DATE     NOT NULL,
     Type VARCHAR2(1)    NOT NULL,
     IDuser VARCHAR2(6) NOT NULL,
     Releasto  VARCHAR2(1) DEFAULT 'O',
     Context   CLOB,
     jpg       Blob,
     CONSTRAINT PK_T_New PRIMARY KEY(IDNew,IDuser)
);
create sequence SE_T_New start with 1 increment by 1 nocache;
 ALTER TABLE T_New ADD CONSTRAINT FK_T_New FOREIGN KEY (IDuser) REFERENCES T_OaUser(IDuser);错误就是下面这句
ALTER TABLE T_New ADD CONSTRAINT FK_T_New FOREIGN KEY (IDuser) REFERENCES T_OaUser(IDuser);
                                                                                                                                           *
 ERROR 位于第 1 行:
ORA-02270: 此列列表的唯一或主关键字不匹配
弄了好久都不知道是为什么?

解决方案 »

  1.   

    CONSTRAINT PK_T_OaUser PRIMARY KEY(IDuser,Name)
    改为CONSTRAINT PK_T_OaUser PRIMARY KEY(IDuser)试试!
      

  2.   

    IDNew NUMBER(6) NOT NULL(IDuser)?
      

  3.   

    哦,没看到
    IDuser VARCHAR2(6) NOT NULL,
    当我没说...
      

  4.   

    sbaz(万神渡劫) 
    你说的是可以的,但我不明白为什么会是这样
    再就是我这个表一定要有两个主键,所以如果按你的方法,建了一个主键,这张表就再建不了主键了,你可以再指教一下吗
      

  5.   

    一对一我也想到了,不过为什么不可以,建两个主键呢.我下面这样为什么不行呢
    CONSTRAINT PK_T_New1 PRIMARY KEY(IDNew)
    CONSTRAINT PK_T_New2 PRIMARY KEY(IDuser)
      

  6.   

    你先在第二个表结构中加入name,然后用下面这个试试!ALTER TABLE T_New ADD CONSTRAINT FK_T_New FOREIGN KEY (IDuser,Name) REFERENCES T_OaUser(IDuser,Name)