⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 disable_pk_ok.txt

📁 orale培训教材包括了所有的sql说明和实例
💻 TXT
字号:
--主键可以drop,主键add批量插入数据,性能比较评测
--结论:drop以后,插入数据节省大量时间

--使用的语句
drop table person;
create table person 
(id number(10) ,name varchar2(20),
constraint  con_pk primary key(id));

alter table person disable constraint con_pk;

alter table person enable constraint con_pk;

alter table person drop constraint con_pk;


--主键drop,主键add批量插入数据,性能比较评测---------------------------


SQL> 
create table person (id number(10) ,name varchar2(20),
constraint  con_pk primary key(id));

表已创建。

--使用drop constranit 去掉pk-----------------------
alter table person drop constraint con_pk;



  1* truncate table person
SQL> /

表已截掉。

SQL> declare
  2  n_loop number;
  3  s_time date;
  4  --s_time varchar2;
  5  e_time date;
  6  begin
  7    select sysdate into s_time from dual ;
  8    for n_loop in 1..100000 loop
  9   insert into person values(n_loop,'name'||n_loop);
 10   commit;
 11    end loop;
 12    select sysdate into e_time from dual ;
 13    dbms_output.put_line(to_char((e_time),'hh:mi:ss'));
 14    dbms_output.put_line(to_char((s_time),'hh:mi:ss'));
 15  end;
 16  /
12:11:59
12:08:02

PL/SQL 过程已成功完成。


--使用add constraint加pk--------------------------------------------

SQL> alter table person add constraint con_pk primary key(id); 

表已更改。

SQL> truncate table person;

表已截掉。

SQL> declare
  2  n_loop number;
  3  s_time date;
  4  --s_time varchar2;
  5  e_time date;
  6  begin
  7    select sysdate into s_time from dual ;
  8    for n_loop in 1..100000 loop
  9   insert into person values(n_loop,'name'||n_loop);
 10   commit;
 11    end loop;
 12    select sysdate into e_time from dual ;
 13    dbms_output.put_line(to_char((e_time),'hh:mi:ss'));
 14    dbms_output.put_line(to_char((s_time),'hh:mi:ss'));
 15  end;
 16  /
12:21:27
12:15:17

PL/SQL 过程已成功完成。





--disable constraint
---------------------------------------------------result---------------

Table truncated.
SQL> truncate table person;

Table truncated.

SQL> alter table person disable constraint con_pk;

Table altered.

SQL> declare
  2  n_loop number;
  3  s_time date;
  4  --s_time varchar2;
  5  e_time date;
  6  begin
  7    select sysdate into s_time from dual ;
  8    for n_loop in 1..100000 loop
  9   insert into person values(n_loop,'name'||n_loop);
 10   commit;
 11    end loop;
 12    select sysdate into e_time from dual ;
 13    dbms_output.put_line(to_char((e_time),'hh:mi:ss'));
 14    dbms_output.put_line(to_char((s_time),'hh:mi:ss'));
 15  end;
 16  /
05:25:17
05:22:55

PL/SQL procedure successfully completed.


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -