it-swarm-eu.dev

Jak se určuje výchozí tabulkový prostor při vytváření tabulky?

Parametr Tablespace je při vytváření tabulek volitelný.

Po provedení CREATE TABLE, Oracle přiřadí výchozí, pokud nebyl definován.

Ve výchozí databázi je tabulkový prostor „UŽIVATELÉ“. Pokud by bylo definováno několik tabulkových prostorů, který z nich by byl přiřazen?

27
Centurion

Při vytváření nového uživatele můžete volitelně zadat výchozí tabulkový prostor a výchozí dočasný tabulkový prostor pro všechny objekty vytvořené tímto uživatelem. Například:

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

Pokud při vytváření uživatele vynecháte klauzule, zdědí uživatel výchozí hodnoty databáze. Mohou být dotazováni následovně:

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>

... a upraveno takto:

alter database default tablespace PHILTS; 

alter database default temporary tablespace PHILTEMP;

Chcete-li dotazovat výchozí hodnoty pro daného uživatele, použijte následující dotaz:

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

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

SQL>
41
Philᵀᴹ

SELECT DEFAULT_TABLESPACE FROM DBA_USERS znát výchozí tabulkový prostor pro každého uživatele. ALTER DATABASE DEFAULT TABLESPACE othertablespace; pro změnu výchozího tabulkového prostoru. Obvykle, pokud existují nějaké tabulkové prostory, měl by správce nastavit výchozí tabulkový prostor při vytváření nového uživatele, například CREATE USER myuser IDENTIFIED BY mypass DEFAULT TABLESPACE onetablespace