在網上找來的語句備份單表的狀況。提供參考oop
--不影響往後工做的造數據步驟: --一、備份表內的內容, --二、清表內內容, --三、給表造數據, --四、還原表 ------------------------------------------------------------ --一、備份表內的內容, --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; ------------------------------------------------------------ --二、清表內內容, --delete <庫名>.<表名>; --刪掉一整個表內的數據 delete userinfo.clientinfo_1; ------------------------------------------------------------ --三、給表造數據, --新建一個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; ------------------------------------------------------------ --四、還原表 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/65449548spa