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

Cen*_*ion 27 oracle

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

执行CREATE TABLE语句时,如果未定义,Oracle 会分配默认语句。

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

Phi*_*lᵀᴹ 41

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

CREATE USER phil IDENTIFIED BY l33t
       DEFAULT TABLESPACE philtablespace
       TEMPORARY TABLESPACE philtemp;
Run Code Online (Sandbox Code Playgroud)

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

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>
Run Code Online (Sandbox Code Playgroud)

...并像这样修改:

alter database default tablespace PHILTS; 

alter database default temporary tablespace PHILTEMP;
Run Code Online (Sandbox Code Playgroud)

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

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

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

SQL>
Run Code Online (Sandbox Code Playgroud)


小智 5

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