创建表时如何确定默认表空间?


27

Tablespace创建表时该参数是可选的。

执行一条CREATE TABLE语句后,如果未定义默认值,Oracle将为其分配默认值。

在默认数据库中,有一个“ USERS”表空间。如果定义了多个表空间,将分配哪个表空间?

Answers:


41

创建新用户时,可以选择为该用户创建的任何对象指定默认表空间和默认临时表空间。例如:

CREATE USER phil IDENTIFIED BY l33t
       DEFAULT TABLESPACE philtablespace
       TEMPORARY TABLESPACE philtemp;

如果在创建用户时省略这些子句,则用户将继承数据库的默认值。可以按以下方式查询:

SQL> select *
  2  from database_properties
  3  where property_name like 'DEFAULT%TABLESPACE';

PROPERTY_NAME                  PROPERTY_VALUE       DESCRIPTION
------------------------------ -------------------- ----------------------------------------
DEFAULT_TEMP_TABLESPACE        TEMP                 Name of default temporary tablespace
DEFAULT_PERMANENT_TABLESPACE   USERS                Name of default permanent tablespace

SQL>

...并进行如下修改:

alter database default tablespace PHILTS; 

alter database default temporary tablespace PHILTEMP;

要查询给定用户的默认值,请使用以下查询:

SQL> select USERNAME, DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE
  2  from DBA_USERS
  3  where USERNAME='PHIL';

USERNAME                       DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE
------------------------------ ------------------------------ ------------------------------
PHIL                           USERS                          TEMP

SQL>

5

SELECT DEFAULT_TABLESPACE FROM DBA_USERS了解每个用户的默认表空间。 ALTER DATABASE DEFAULT TABLESPACE othertablespace;更改默认表空间。通常,如果有一些表空间,那么管理员在创建新用户时应设置默认表空间,例如CREATE USER myuser IDENTIFIED BY mypass DEFAULT TABLESPACE onetablespace

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.