博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Teradata IDENTITY Column
阅读量:4208 次
发布时间:2019-05-26

本文共 1013 字,大约阅读时间需要 3 分钟。

Teradata 中也可以定义自动增长列,语法如下:

CREATE TABLE test
(
ID INTEGER GENERATED BY DEFAULT AS IDENTITY
    (START WITH 100
    INCREMENT BY 1
    ),
CID INTEGER,
PID INTEGER)
我们用show table test来查看,则可以发现它的定义,系统自动设置了一些条件。
CREATE SET TABLE test ,NO FALLBACK ,
     NO BEFORE JOURNAL,
     NO AFTER JOURNAL,
     CHECKSUM = DEFAULT
     (
      ID INTEGER GENERATED BY DEFAULT AS IDENTITY
           (START WITH 100
            INCREMENT BY 1
            MINVALUE -2147483647
            MAXVALUE 2147483647
            NO CYCLE),
      CID INTEGER,
      PID INTEGER)
PRIMARY INDEX ( ID );
如上定义中,有两种方法定义IDENTITY 类型,他们的区别如下
ID INTEGER GENERATED BY DEFAULT AS IDENTITY
ID INTEGER GENERATED ALWAYS AS IDENTITY
运行以下的SQL:
1. insert into test(CID,PID) values(1,1)
2. insert into test(ID,CID,PID) values(1,1,1)
3. insert into test(ID,CID,PID) values(110,1,1)
BY DEFAULT :
运行成功,结果如下,可以插入指定的数值在列中
    1    1    1
100    1    1
110    1    1
ALWAYS :
运行成功,结果如下,指定的数值会被忽略,转换为自动增长数值
100    1    1
101    1    1
102    1    1
注意 :在BY DEFAULT方式中,因为系统中保存有自动增长数值,如插入的数值110大于定义的100,则迟早IDENTITY会增长到这个数值,那时候就会发生 IDENTITY DUPLICATE冲突,而ALWAYS则不会有这个问题。将SQL 1多运行几次你将会发现这个错误。

版权声明:本文为博主原创文章,未经博主允许不得转载

你可能感兴趣的文章
yii2 php namespace 引入第三方非namespace库文件时候,报错:Class not found 的解决
查看>>
softlayer 端口开放
查看>>
操作1:mongodb安装
查看>>
操作2:mongodb使用语法
查看>>
如何给分类增加一个属性(后台)
查看>>
linux设置环境变量 临时设置 和 永久设置
查看>>
mysql数据库主从同步的问题解决方法
查看>>
LoadRunner如何在脚本运行时修改log设置选项?
查看>>
QC数据库表结构
查看>>
自动化测试工具的3个关键部分
查看>>
测试工具厂商的编程语言什么时候“退休”?
查看>>
资源监控工具 - Hyperic HQ
查看>>
LoadRunner中Concurrent与Simultaneous的区别
查看>>
SiteScope - Agentless监控
查看>>
QTP测试.NET控件CheckedListBox
查看>>
使用QTP的.NET插件扩展技术测试ComponentOne的ToolBar控件
查看>>
用上帝之眼进行自动化测试
查看>>
为LoadRunner写一个lr_save_float函数
查看>>
PrefTest工作室全新力作-《性能测试与调优实战》课程视频即将上线
查看>>
质量度量分析与测试技术 培训大纲
查看>>