Oracle 相同表结构表的建立与insert语句
目录
Oracle 如何创建一个相同表结构的表
方法一:使用sql语句直接创建
create table 新的table名称 as select * from 旧的table名称 where 1 = 2;
使用 1 = 2 的目的是只复制表结构,不复制表中的数据。
优点:操作简单
缺点:无法复制全部属性,索引等就不可复制
方法二:使用sql语句查询建表语句
select dbms_metadata.get_ddl(类型, 表名称) from dual;
-- 例子: 获取表的ddl语句,表名为example
select dbms_metadata.get_ddl('TABLE', 'EXAMPLE') from dual;
优点:操作较为简单
缺点:在工作中可能会遇到账号权限不够,无法查询的情况
方法三:使用PLSQL工具
打开PLSQL工具,查询需要被复制的旧表,【ctrl + 单击】 表名,进入定义,右下角有查看SQL的按钮。

点击进去,复制内部的建表sql,根据自身的需要改动sql。【索引不能重名,需要加以区分】
优点:操作简单
缺点:该功能暂未发现明显缺点
如何向相同表结构的表塞原始数据
假设已经根据 students 表的结构,复制一份新表 students_his,并在 students_his 表的最后加入了【学号和插入时间】两个栏位。
通过如下方式将 students 表中名字为 Ming 的数据完全的复制到 students_his 表中,并在添加插入人员的学号和插入的时间。
insert into students_his
select a.*, '1234', '2023/01/09 17:15:00'
from students a
where name = 'Ming';

浙公网安备 33010602011771号