
# CREATE DATABASE LINK
#### 功能描述
创建DATABASE LINK对象。DATABASE LINK详细说明请见[DATABASE LINK](https://support.huaweicloud.com/centralized-devg-v3-gaussdb/gaussdb-42-0679.html#ZH-CN_TOPIC_0000002200579378)。
#### 注意事项
- 禁止使用DATABASE LINK连接初始用户。
- 禁止初始用户创建、修改和删除DATABASE LINK对象。
- 升级未提交情况下无法创建使用DATABASE LINK。
- 当使用CURRENT_USER或CONNECT TO连接串省略时，使用当前数据库初始用户名和空密码连接，使用时会连接失败。
- 连接GaussDB时使用localhost、127.0.0.1或本机ip及对应端口可连接当前实例数据库。
 
#### 语法格式
```
CREATE [ PUBLIC ] DATABASE LINK dblink
  [ CONNECT TO { CURRENT_USER | user IDENTIFIED BY password } ] [ USING ( option 'value' [...]) ];
```
#### 参数说明
- **PUBLIC**
  指定公共以创建对所有用户可见的公共数据库链接。如果省略此子句，则数据库链接是私有的，仅对当前用户可用。
  
- **dblink**
  要创建的DATABASE LINK的名字。
  
- **user**
  创建的DATABASE LINK连接远端使用的用户名。
  
- **password**
  创建的DATABASE LINK连接远端使用的用户对应的密码。
  
- **CURRENT_USER**
  使用当前数据库初始用户名和空密码连接。
  
- **USING ( option 'value' \[, ... \] )**
  USING可选择指定要连接的数据库的ip地址、端口号、远端的database name等参数 ，支持的options包括：
  - host：指定连接的地址，不支持ipv6地址。支持以 ','分隔的字符串来指定多个IP地址，当前不支持密态数据库和ssl设置和证书认证，不指定默认为空。
  
  - port：指定连接的端口号，不指定默认为5432。
  
  - dbname：指定连接的数据库名称，不指定默认为连接远端使用的用户名。
  
  - fetch_size：从远端每次获取数据量大小，fetch_size取值为0到2147483647，默认为100。
  
  
  ![](https://support.huaweicloud.com/centralized-devg-v3-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
  - USING后的括号可以只选择上述关键字中的一部分去写。
  
  - USING关键字也可以不写，同时之后的括号也不要再写。
  
  - DATABASE LINK创建的时候不会去验证是否能连接成功，如果缺乏相关的关键字，可能会在使用时报错。
    
 
#### 示例
```
gaussdb=# create public database link test_link1 connect to 'user1' identified by '********' using (port '54399',dbname 'db01');
```
