--不影响日后工作的造数据步骤:
--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删掉。