精华内容
下载资源
问答
  • Oracle备份表

    千次阅读 2019-03-16 18:41:00
    中的数据量很大时亿量时,如果在继续存放数据的话查询的效率会很慢,这时可以对这个做一个备份,然后创建一个一模一样的来继续存放数据。 首先我们要做的是修改的名字、主键的名字、索引的名字,如果有...

    当表中的数据量很大时亿量时,如果在继续存放数据的话查询的效率会很慢,这时可以对这个表做一个备份,然后创建一个一模一样的表来继续存放数据。

    首先我们要做的是修改表的名字、主键的名字、索引的名字,如果有外键的话也对外键名修改。然后在创建一个新的表,表名、主键名、索引名、外键名。都和原来表中保持一致,然后在把一部分需要的数据导入到新的表中即可。

    第一步修改表名

    ALTER TABLE 表名 RENAME TO 修改后的表名;

    第二步修改主键

    由于主键名不能修改所以只能先删除原来的主键,然后重新添加一个新的主键名称,如下分情况操作。

    1.当表有主键没有主键约束名,先删除主键,在添加主键。

    删除主键:ALTER TABLE 表名 DROP PRIMARY KEY;

    添加主键:ALTER TABLE 表名 ADD PRIMARY KEY (字段名);

    2.当有主键也有主键约束名,先删除已有的主键约束名,在添加主键和主键约束名。

    若不知道主键约束名可查询:

    SELECT C.CONSTRAINT_NAME FROM USER_CONS_COLUMNS C WHERE C.TABLE_NAME='表名';

    查询出来之后在删除主键约束名:ALTER TABLE 表名 DROP CONSTRAINT 约束名;

    最后在添加主键和主键约束名:ALTER TABLE 表名 CONSTRAINT 约束名 PRIMARY KEY (字段名1,字段名2);

    第三步修改索引名

    ALTER INDEX  索引名 RENAME TO 修改后的索引名;

    第四步统计分析(作用是提高导入数据的效率)

    ANALYZE TABLE 表名 COMPUTE STATISTICS FOR TABLE FOR ALL INDEXES FOR ALL COLUMNS;

    注意:第二步和第四步所有操作的表名,都是修改之后的表名。

    第五步创建新表(新表的表名要和第一步修改前的表名一致),同时从修改后的表中导入一部分所需数据

    CREATE TABLE 表名 AS SELECT * FROM 修改后的表名 WHERE 自己需要导入的条件;

    第六步添加主键

    ALTER TABLE 表名 ADD CONSTRAINT 主键约束名 PRIMARY KEY(字段名);

    第七步添加索引

    CREATE INDEX 索引名 ON 表名 (字段名);

    第八步为了提高新表的查询效率可以对新建的表做一个统计分析

    ANALYZE TABLE 表名 COMPUTE STATISTICS FOR TABLE FOR ALL INDEXES FOR ALL COLUMNS;

    例子如下:

    表名:tb_student

    主键是:student_id

    主键约束名:pk_student_1

    索引名:index_student_1

    修改表名:alter table tb_student rename to tb_student_backup2019;

    删除主键:alter table tb_student_backup2019drop primary key;

    或者删除主键约束名:alter table tb_student_backup2019 drop constraint pk_student_1;

    添加主键和主键约束名:

    alter table tb_student_backup2019 add constraint pk_student_1_backup2019 primary key (student_id);

    修改索引:alter index index_student_1 rename to index_student_1_backup2019;

    统计分析:

    analyze table tb_student_backup2019 compute statistics for table for all indexes for all columns;

    创建新表:

    create table tb_student as select * from tb_student_backup2019 where datetime>='20180101';

    增加主键和主键约束名:alter table tb_student add constraint pk_student_1 primary key (student_id);

    增加索引:create index index_student_1_backup2019 rename to index_student_1;

    统计分析:analyze table tb_student compute statistics for table for all indexes for all columns;

    还有一些常用命令也写下方

    查看oracle版本号:select * from v$version;

    删除索引:drop index 索引名;

    统计分析另一种写法:exec dbms_stats.gather_table_stats('用户名','表名');  --该命令适用于dos窗口

     

    展开全文
  • 备份数据表: oracle 备份表,删除表 drop delete truncate

    备份数据表:

    create table 表名 as select * from  要备份的表名

    如备份scoot/tiger 表中的emp表

    create table myemp as select  *  from  emp;

    删除表:

    相同点,使用drop delete truncate 都会删除表中的内容
    drop table 表名
    delete from 表名(后面不跟where语句,则也删除表中所有的数据)
    truncate table 表名

    区别
    首先delete 属于DML,当不commit时时不生效的
    而truncate 和 drop 则是直接生效的,不能回滚。
    truncate 和 delete 不删除表的结构,只是针对表中的内容删除
    drop语句将删除表的结构,被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.
    truncate 会释放占用空间,而drop 和 delete不会。
    速度:drop>truncate>dalete
    综上所述,可以得到一个问题,使用drop 和 truncate相对delete是危险的,当使用drop 和 truncate 时不能回滚。delete相对安全,可以回滚,并且commit以后才会提交,并且不会删除表结构,也不会释放表所占用的空间。


    展开全文
  • Oracle备份表结构和数据

    千次阅读 2021-04-05 21:43:36
    文章目录我的Oracle数据库学习笔记查看员工的信息把emp表中的备份一份到一个新表中修改新表中empNo为非空列 : 注意,列中原的值没有空值仅备份表结构 查看员工的信息 select * from emp; 把emp表中的备份一份到...

    我的Oracle数据库学习笔记

    Day 2 备份表结构和数据



    查看员工的信息

    select * from emp;
    

    把emp表中的备份一份到一个新表中

    create table 表名 as select * from 现有表名;
    

    例:

    create table newEmp as select * from emp;
    

    注意:
    1)包含表的结构[列名和数据类型] ,但所有列都为可空列
    2) 表中的数据

    修改新表中empNo为非空列 : 注意,列中原的值没有空值

    alter table newEmp modify(empno not null);
    

    仅备份表结构

    把emp表备份一份,仅包含表结构,不想要数据

    create table 表名 as select * from 现有表名 where 1=2
    

    例:

    create table newEmp2 as select * from emp where 1=2
    
    展开全文
  • oracle备份表数据

    万次阅读 2018-09-10 11:11:16
    备份表: 语句:create table user_info_bak as select * from user_info; 备份数据:; insert into user_info_bak select * from user_info;

    备份表:

    语句:create table user_info_bak as select * from user_info;

    备份数据:;

    insert into user_info_bak select * from user_info;

    展开全文
  • oracle 备份表还原表

    千次阅读 2015-04-15 16:19:15
    备份表:create table A0 as select * from A 还原表:delete from A  insert into A select * from A0;
  • ORACLE备份表SQL语句

    万次阅读 2018-12-10 10:40:02
    CREATE TABLE TABLE_NAME1 AS SELECT * FROM TABLE_NAME2
  • oracle备份表数据更新到原有表

    千次阅读 2014-06-09 08:56:09
    --备份表md_mdsjxx create table md_mdsjxx_20130517 as select * from md_mdsjxx ---处理md_mdsjxx begin declare  --类型定义  org varchar2(50);  cursor c_job  is  select m
  • Oracle备份表exp和imp

    千次阅读 2013-06-13 14:03:20
    exp参数: 关键字 说明(默认)  ---------------------------------------------- ...owner 所有者用户名列 file 输出文件 (expdat.dmp) tables 表名列表 compress 导入一个范围 (y) recordle
  • oracle 备份表 insert into 与 select into

    千次阅读 2013-07-18 11:14:36
    本文转载:转自... Oracle中insert into select和select into的用法(异常0RA-00905:missing keyword的解决) 两张进行数据的拷贝,最常用的拷贝语句是: insert into select 和
  • Oracle 触发器 备份 数据
  • oracle快速备份表

    万次阅读 2019-07-12 14:44:26
    生产上线如何快速备份表。 create 表名_bak _日期 as select * from表
  • oracle复制表 备份表

    千次阅读 2017-03-08 10:06:56
    1.复制 create table dxxx as select * from zhzs_ahqscjdj_dxxx 或 create table dxxx1 as select * from zhzs_ahqscjdj_dxxx where 1=1 2.复制结构 create table dxxx2 as select * from zhzs_ahqscjdj...
  • oracle 快速备份表数据

    2018-02-28 17:10:00
    oracle 快速备份表数据 CreateTime--2018年2月28日17:04:50 Author:Marydon UpdateTime--2017年1月20日11:45:07 1.1.9.3 备份表数据   语法:  CREATE TABLE 表名_BAK/_日期 AS SELECT * FROM 要备份的表名...
  • 您可能感兴趣的文章:oracle sqlplus 常用命令大全oracle查询语句大全(oracle 基本命令大全一)oracle创建的方法和一些常用命令Oracle数据库执行脚本常用命令小结oracle SQL命令大全Oracle常用命令大
  • Oracle快速备份表数据

    2019-09-28 20:50:20
    Oracle数据库中备份表数据。 例子: 1 create table table_name_bak as select * from table_name 1 create table table_name_bak as select * from table_name 2 where table_name.date between TO_...
  • Oracle备份一张

    千次阅读 2018-11-21 18:52:00
    创建表:myTable 的备份表myTable_tmpe create table myTable_tmpe as select * from myTable; 补充: --在myTable中添加一条学生的数据 ;insert into myTable(id, type, code, name, parent_code,sync_flag) ...
  • 如果当前用户下的数据库中存在空时,执行exp备份时由于该新建时,并没有向其中插入数据,那么这个不会立即分配extent,也就是不占数据空间,只有当你insert数据后才分配空间。这样可以节省少量的空间。但是...
  • Oracle 备份 恢复空间数据步骤

    千次阅读 2018-11-14 08:04:14
    Oracle 备份 恢复空间数据步骤
  • oracle备份与恢复机制 精品文档 精品文档 收集于网络如有侵权请联系管理员删除 收集于网络如有侵权请联系管理员删除 精品文档 收集于网络如有侵权请联系管理员删除 谈ORACLE备份与恢复 经常听到有人说,某数据库备份...
  • oracle批量备份表的存储过程

    千次阅读 2018-07-21 10:41:31
    在一些重大变更前,后都需要备份涉及的重要表,当表很多且备份不是最新的时候,需要drop表,因为oracle没if exists ...注意,这边如果当天存在同名备份表,会drop掉, create or replace procedure BAK_CRM_PRO as type t...
  • Oracle 备份、恢复单或多数据步骤,适用于 Oracle 8、9、10。 *备份或多数据:
  • Oracle数据库如何备份表

    万次阅读 2019-04-29 14:55:10
    createtable新表名asselect*from旧表名 select*into新表名from旧表名
  • oracle数据库表备份及还原:详细讲述了方法,适合新手~(傻瓜式方法)
  • Oracle 备份 恢复单或多数据步骤
  • 建立备份表 create table b as select * from a where 条件; 创建了b表,且b表中的数据只是a表中的一部分,给b表加上相同的索引,执行同样的select脚本,b表比a表还是慢了很多是什么原因?有什么解决方法么?
  • oracle表备份

    2014-01-09 22:58:43
    Oracle 备份、恢复单或多数据步骤,适用于 Oracle 8、9、10。 *备份或多数据: exp user/password@server file=filefullpathname log=logfullpathname tables=(tablespacename.table1,tablespacename....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 96,464
精华内容 38,585
关键字:

oracle如何备份表