VastbaseG100

基于openGauss内核开发的企业级关系型数据库。

Menu

CREATE TABLE

功能描述

Vastbase在Oracle兼容模式下支持在CREATE TABLE 中使用GENERATED BY DEFAULT AS IDENTITY语法,用来定义自增列。该语法是可选的,若不加则表示该列没有自增序列的效果。

注意事项

  • 该功能仅在数据库兼容模式为Oracle时支持(即数据库实例初始化时指定DBCOMPATIBILITY='A')。

  • 自增列的数据类型包括TINYINT、SMALLINT、INTEGER、BINARY_INTEGER、BIGINT、NUMERIC、DECIMAL、NUMBER、float、DOUBLE PRECISION 、FLOAT 、DEC、等numeric类型的数据类型。

  • 如果手动插入的值和自增序列产生的值重复不影响,可以并存。

  • 支持generated by default [on null]as identity 其中on null是可选项。

  • 一个表只能有一个列被定义为该自增列。

语法格式

CREATE TABLE table_name (
    Column_name1 INTEGER GENERATED BY DEFAULT [on null] AS IDENTITY,
    Column_name2 STRING);

参数说明

  • table_name

    表名。

  • Column_name

    列名。

示例

1、创建自增列数据类型为numeric的表。

create table t_identity_numeric (a numeric(5,3) GENERATED BY DEFAULT AS IDENTITY,b text);

2、插入不带自增行的数据。

insert into t_identity_numeric(b) values (1),(5),(3);
insert into t_identity_numeric values(1.234,7);

3、查询数据。

select * from t_identity_numeric;

返回结果为:

   a   | b
-------+--
     1 | 1
     2 | 5
     3 | 3
 1.234 | 7
(4 rows)