oracle表空间相关操作

  1. 切换数据库临时表空间为temp1/切换数据库的undo表空间为undotbs01

切换数据库的临时表空间为temp1

CREATE TEMPORARY TABLESPACE temp1

TEMPFILE 'temp1.dbf'

SIZE 100M

AUTOEXTEND ON;

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp1;

切换数据库的undo表空间为undotbs01

CREATE UNDO TABLESPACE UNDOTBS01

DATAFILE 'undo_datafile.dbf'

SIZE 10M

AUTOEXTEND ON;

ALTER SYSTEM SET undo_tablespace = undotbs01;

  1. 创建两个简单表A,B。AB表有相关联的列。并在关联列上创建索引

CREATE TABLE A(

id INT PRIMARY KEY,

name VARCHAR(50),

b_id INT

);

CREATE TABLE B(

id INT PRIMARY KEY,

name VARCHAR(50)

);

alter table A add constraint fk_a_b foreign key(b_id) references B(id);

create index idx_a_b_id on A(b_id);

3.

创建一个事务级临时表,会话级临时表,并测试在什么情况下临时表里的数据会消失

事务级:

  1. 会话提交:当会话提交时,临时表中的数据将被清除。
  2. 会话回滚:如果会话进行了回滚操作,则临时表中的数据也会被清除。
  3. 会话关闭:当会话结束或关闭时,临时表中的数据将被删除。

CREATE GLOBAL TEMPORARY TABLE temp_table1(

id INT,

name VARCHAR(50)

)ON  COMMIT DELETE ROWS;

INSERT INTO temp_table1 VALUES (1, 'John');

INSERT INTO temp_table1 VALUES (2, 'Jane');

SELECT * FROM temp_table1;

commit;

会话级:

  1. 会话结束:当会话结束时,会话级临时表及其数据将被删除。
  2. 会话关闭:如果会话被主动关闭(例如通过ALTER SYSTEM KILL SESSION),会话级临时表及其数据也会被删除。

CREATE GLOBAL TEMPORARY TABLE temp_table2(

id INT,

name VARCHAR(50)

)ON  COMMIT PRESERVE ROWS;

INSERT INTO temp_table2 VALUES (1, 'John');

INSERT INTO temp_table2 VALUES (2, 'Jane');

SELECT * FROM temp_table2;

关闭后重新连接数据库实例

4.

SELECT * FROM temp_table2;

CREATE TABLESPACE A DATAFILE 'A.dbf' SIZE 10M AUTOEXTEND ON;

CREATE TABLESPACE B DATAFILE 'B.dbf' SIZE 100M AUTOEXTEND ON;

CREATE USER BI IDENTIFIED BY 123456;

ALTER USER BI DEFAULT TABLESPACE B;

GRANT CONNECT, RESOURCE TO BI;

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值