VastbaseG100

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

Menu

CREATE TABLE

功能描述

在当前数据库中创建一个新的空白表,该表由命令执行者所有。

本文档仅介绍CREATE TABLE在SQL Server兼容模式下的特性用法,创建表的更多用法介绍详见开发者指南中的SQL语法CREATE TABLE

Vastbase在SQL Server兼容模式下支持在CREATE TABLE建表时为字段指定IDENTITY属性,用于获得自动增加的标识号。被该属性修饰的字段即为表的标识列。

注意事项

  • 该功能仅在数据库兼容模式为SQL Server时支持(即数据库实例初始化时指定DBCOMPATIBILITY='MSSQL')。
  • 一个表最多只能有一个IDENTITY标识列。
  • IDENTITY标识列的字段值是自动生成的,不能手动插入。

语法格式

CREATE TABLE table_name
  ( { column_name data_type 
    [ column_constraint [ ... ] ] 
    | table_constraint } [, ... ] )
    [ ... ]; 

其中列约束column_constraint可以是:

IDENTITY [ (seed , increment) ] 

参数说明

  • table_name

    要创建的表名。

  • column_name

    新表中要创建的字段名。

  • data_type

    字段的数据类型。

    为标识列指定的有效数据类型可以是任何整数类别的数据类型(bit类型除外),也可以是DECIMAL数据类型。

  • table_constraint

    表约束的内容。

  • IDENTITY [ (seed , increment) ]

    为字段指定IDENTITY属性,将其指定为表的标识列。

    • seed: 要分配给表中第一行标识列的整数值。

      后续每一行标识列的值,等于上一个IDENTITY值加上increment值。如果既没有指定seed,也没有指定increment,那么它们都默认为1。

    • increment: 两个相邻标识值之间的差值。

    seed与increment为可选参数,使用时两者必须同时指定,否则将报错。

示例

示例1: 建表时将字段id指定为标识列,仅指定标识列的数据类型。

1、创建测试表并插入数据。

create table t_identity4(id decimal identity, col text);
insert into t_identity4(col) values('张三');
insert into t_identity4(col) values('李四');
insert into t_identity4(col) values('王五');

2、查看测试表数据。

select * from t_identity4;

返回结果如下:

 id | col
----+------
  1 | 张三
  2 | 李四
  3 | 王五
(3 rows)

示例2: 建表时将字段id指定为标识列,同时指定标识列的起始值与增长值。

1、创建测试表并插入数据。

create table t_identity3(id decimal identity(5,10), col text);
insert into t_identity3(col) values('张三');
insert into t_identity3(col) values('李四');
insert into t_identity3(col) values('王五');

2、查看测试表数据。

select * from t_identity3;

返回结果如下:

 id | col
----+------
  5 | 张三
 15 | 李四
 25 | 王五
(3 rows)