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)