在網上找來的語句備份單表的情況。提供參考
--不影響日后工作的造數據步驟: --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刪掉。
出處:https://blog.csdn.net/zhouky1993/article/details/65449548