0

我有一个STUDENT带有列的表st_id,name,age,dept_name。现在我想创建一个STUDENT_DESC带有列的新表st_id,dept_name,st_desc。所以我需要将st_id和的所有值复制dept_name到新创建的表中STUDENT_DESC。我需要在复制时确保关系st_idand dept_namedept_name应该对应于st_id。那么我该如何在 PL/SQL 中做到这一点?

4

2 回答 2

1

我不确定我是否了解您的数据模型,但从表面上看,您可以简单地创建表格:

CREATE TABLE student_desc AS SELECT st_id, dept_name FROM student;

ALTER TABLE student_desc ADD (st_desc VARCHAR2(..));

填写..所需的最大尺寸st_desc

于 2012-09-25T07:04:03.913 回答
1
insert into STUDENT_DESC (select st_id, dept_name, null from student);

这将简单地复制所有记录。第三列st_desc留空(null)

为了确保参照完整性,您将向STUDENT_DESC表添加主键和参照完整性约束

但是,请注意,在许多情况下,引入包含此类学生数据的第二个表可能是“错误的”。st_desc添加到STUDENT表格中可能会“更好” 。

于 2012-09-25T07:18:02.660 回答