在Oracle中使用SQL语句备份单表-造数据-还原表
--不影响日后工作的造数据步骤:
--1、备份表内的内容,
--2、清表内内容,
--3、给表造数据,
--4、还原表
------------------------------------------------------------
--1、备份表内的内容,
--create table <库名2>.<表名2> as select * from <库名1>.<表名1>;
--根据表1创建表2,表2的字段和数据都和表1一样.可用于在不同的库之间进行创建
--若只需要表头不需要表数据的话,用create table <库名2>.<表名2> as select * from <库名1>.<表名1> where 1=0;
create table userinfo.clientinfo_2 as select * from userinfo.clientinfo_1;
------------------------------------------------------------
--2、清表内内容,
--delete <库名>.<表名>;
--删掉一整个表内的数据
delete userinfo.clientinfo_1;
------------------------------------------------------------
--3、给表造数据,
--新建一个Test Window,写语句如下:
-- Created on 2017-03-22 by ZHOUKY16712
declare
-- Local variables here
--在declare下面定义一些参数
i integer;--定义i为整型
v_client_id varchar(20);--参数客户号为20位的字符串
v_client_name varchar(50);--参数客户姓名为50位的字符串
v_client_age integer;--参数客户年龄为整型
begin
-- Test statements here
--在begin后面开始写执行语句
for i in 1..20 --将i从1运行到20,进行循环
loop
--********************************************--
--lpad(i, 6, '0')表示一个6位的字符串,以i的值结尾,前面以0补充
--||表示拼接,'1'||<字符串>表明在字符串前拼接字符'1'
--故全部循环结束后,v_client_id 值为1000001到1000020
--********************************************--
v_client_id := '1'||lpad(i, 6, '0');
v_client_name :='zky';--名字赋值为zky
v_client_age:=18;--年龄为18
--给表插入数据
--insert into<库名>.<表名> VALUES(<字段值>,<字段值>);这种的话是依次将值挨个传入字段内,
--insert into<库名>.<表名> (<字段名>,<字段名>) VALUES(<字段值>,<字段值>);这种是可以跳跃将值传进字段里
insert into userinfo.clientinfo_1 values(v_client_id,v_client_name,v_client_age);
end loop;--循环结束
commit;
end;
------------------------------------------------------------
--4、还原表
delete userinfo.clientinfo_1 ;
insert into userinfo.clientinfo_1 select * from userinfo.clientinfo_2 --把表2数据复制到表1去
drop table userinfo.clientinfo_2--把用来备份的表2删掉。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了