Updated on 2023-10-23 GMT+08:00

CREATE DIRECTORY

Function

CREATE DIRECTORY creates a directory. The directory defines an alias for a path in the server file system and is used to store data files used by users.

Precautions

  • When enable_access_server_directory is set to off, only the initial user is allowed to create directory objects. When enable_access_server_directory is set to on, the user with the SYSADMIN permission and the user who inherits the gs_role_directory_create permission of the built-in role can create directory objects.
  • By default, the user who creates a directory has the read and write permissions on the directory.
  • The default owner of a directory is the user who creates the directory.
  • A directory cannot be created for the following paths:
    • The path contains special characters.
    • The path is a relative path.
    • The path is a symbolic link.
  • The following validity check is performed during directory creation:
    • Check whether the path exists in the OS. If it does not exist, a message is displayed, indicating the potential risks.
    • Check whether the database initial user omm has the R/W/X permissions for the OS path. If the user does not have all the permissions, a message is displayed, indicating the potential risks.
  • In the database, ensure that the path is the same on all the nodes. Otherwise, the path may fail to be found on some nodes when the directory is used.

Syntax

CREATE [OR REPLACE] DIRECTORY directory_name
AS 'path_name';

Parameter Description

  • directory_name

    Specifies the name of a directory.

    Value range: a string. It must comply with the identifier naming convention.

  • path_name

    Specifies the OS path for which a directory is to be created.

    Value range: a valid OS path

Examples

-- Create a directory.
openGauss=# CREATE OR REPLACE DIRECTORY  dir  as '/tmp/';

Helpful Links

ALTER DIRECTORY and DROP DIRECTORY