我有一个表STUDENT
,其中包含st_id,name,age,dept_name
列。现在,我想创建一个包含STUDENT_DESC
列的新表st_id,dept_name,st_desc
。因此,我需要将st_id
和dept_name
的所有值复制到新创建的表STUDENT_DESC
。我需要在复制st_id
和dept_name
时确保关系,dept_name
应该对应st_id
。那么我怎样才能在PL / SQL中做到这一点?
答案 0 :(得分:1)
我不确定我是否理解您的数据模型,但从表面上看,您可以简单地创建表格:
CREATE TABLE student_desc AS SELECT st_id, dept_name FROM student;
ALTER TABLE student_desc ADD (st_desc VARCHAR2(..));
使用..
所需的最大尺寸填写st_desc
。
答案 1 :(得分:1)
insert into STUDENT_DESC (select st_id, dept_name, null from student);
这将简单地复制所有记录。第三列st_desc
保留为空(null)
为确保参照完整性,您需要向STUDENT_DESC
表添加主键和参照完整性约束
但是,请注意,在许多情况下,引入包含此类学生数据的第二个表可能是“错误的”。将st_desc
添加到STUDENT
表格可能会“更好”。