父表为a表,字段为name ,id ,dep。其中name为主键 
子表为b表,字段为number,grade。其中number为主键将a表的name字段添加为b表的外键(级联关系)时
如何也时也将a表name字段的数据移动到b表的name字段中?

解决方案 »

  1.   

    既然是父子表关系,我看你的表设计有问题了
    按你的意思,父子表关系应该这样设计父表:name,id,dep(name为主键)
    子表:name,serial_no,number,grade(name,serial_no为联合主键)
    这是最常用父子表关系设计
      

  2.   

    a表的数据是不能移动到b表中的,只能通过b表的name字段查询到a表中的数据:
    select a.id,a.dep from tablea a,tableb b where a.name = b.name
      

  3.   

    那样就没法建立关系了啊表的关系我说错了,应该是
    a表,字段为name(pk) ,id , dep
    b表, 字段为number (pk),id,grade 建立外键关系之后 子表b表的name字段为外键,此时外键name字段的数据应该由b表的id字段控制即:
    原表关系 a:name(pk)  id     dep
                李         012    A部门
                  王         023    B部门         b:  number (pk)  id     grade 
                  01            012    A级
                  02            023    A级
                  03            012    c级 
    建立外键关系后的b表应为:
          b: number(Pk) name(fk)  id    grade
             01           李          012    A级
              02           王          023    A级 
             03            李          012    C级 用ALTER TABLE b ADD  FOREIGN KEY (name)
          REFERENCES a (name) ON DELETE CASCADE ON UPDATE CASCADE;
    建立外键后,数据如何导入?
      

  4.   

    导入做什么呀
    你做联合查询不就可以得到你所需要的数据了么?
    select b.number,a.name,a.id b.grade from a,b where a.id = b.id
      

  5.   

    或许你的需求是这样的:
    SQL> -- create a foreign key with a cascade delete with more than one field
    SQL>
    SQL>     CREATE TABLE supplier
      2      (      supplier_id     numeric(10)     not null,
      3             supplier_name   varchar2(50)    not null,
      4             contact_name    varchar2(50),
      5             CONSTRAINT supplier_pk PRIMARY KEY (supplier_id, supplier_name)
      6      );Table created.SQL>
    SQL>
    SQL>     CREATE TABLE products
      2      (      product_id      numeric(10)     not null,
      3             supplier_id     numeric(10)     not null,
      4             supplier_name   varchar2(50)    not null,
      5             CONSTRAINT fk_supplier_comp
      6               FOREIGN KEY (supplier_id, supplier_name)
      7              REFERENCES supplier(supplier_id, supplier_name)
      8              ON DELETE CASCADE
      9      );Table created.SQL>
    SQL>     desc products;
     Name                                                                                                  Null?    Type
     ----------------------------------------------------------------------------------------------------- -------- -------------------------------------------------------------------- PRODUCT_ID                                                                                            NOT NULL NUMBER(10)
     SUPPLIER_ID                                                                                           NOT NULL NUMBER(10)
     SUPPLIER_NAME                                                                                         NOT NULL VARCHAR2(50)SQL>     desc supplier;
     Name                                                                                                  Null?    Type
     ----------------------------------------------------------------------------------------------------- -------- -------------------------------------------------------------------- SUPPLIER_ID                                                                                           NOT NULL NUMBER(10)
     SUPPLIER_NAME                                                                                         NOT NULL VARCHAR2(50)
     CONTACT_NAME                                                                                           VARCHAR2(50)SQL>
    SQL>     drop table products cascade constraints;Table dropped.SQL>
    SQL>     drop table supplier cascade constraints;Table dropped.SQL>