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)