使用没有主键的表中的唯一键创建视图

时间:2014-01-09 09:40:27

标签: .net oracle entity-framework views primary-key

我有几个没有主键的oracle表。我无法修改此数据库设计,因为它被多个应用程序使用。添加自动增量字段也不是一种选择。

为了在实体框架中生成Edmx,我需要在表格中使用唯一字段。 所以我要做的是创建一个具有唯一键的视图。

我的表就像:

 CREATE TABLE "ENTITLEMENTS"
(   
    "TOKEN" VARCHAR2(40 CHAR), 
    "ENROLLED_FUNCTION" VARCHAR2(9 CHAR)
);

有没有办法从视图中显示自动生成的标识字段。如果是这样的话?

2 个答案:

答案 0 :(得分:3)

试试这个

Select row_number() OVER (ORDER BY TOKEN,ENROLLED_FUNCTION ),TOKEN,ENROLLED_FUNCTION From ENTITLEMENTS

答案 1 :(得分:2)

阅读thisalso this

例如

CREATE TABLE DATASET ( VAL1 CHAR ( 1 CHAR ),
                   VAL2 VARCHAR2 ( 10 CHAR ),
                   VAL3 NUMBER );

INSERT INTO
      DATASET ( VAL1,
              VAL2,
              VAL3 )
VALUES
      ( 'b',
        'b-details',
        2 );

INSERT INTO
      DATASET ( VAL1,
              VAL2,
              VAL3 )
VALUES
      ( 'a',
        'a-details',
        1 );

INSERT INTO
      DATASET ( VAL1,
              VAL2,
              VAL3 )
VALUES
      ( 'c',
        'c-details',
        3 );

INSERT INTO
      DATASET ( VAL1,
              VAL2,
              VAL3 )
VALUES
      ( 'a',
        'dup',
        4 );

INSERT INTO
      DATASET ( VAL1,
              VAL2,
              VAL3 )
VALUES
      ( 'c',
        'c-details',
        5 );

COMMIT;


CREATE VIEW TESTER ( C1,
                 C2,
                 C3  UNIQUE RELY DISABLE NOVALIDATE )
AS
    SELECT
          VAL1,
          VAL2,
          VAL3
    FROM
          DATASET;