zoukankan      html  css  js  c++  java
  • Identity列

    经常会用到Identity标识列,这种自增长的字段操作起来的确是比较方便.


    1 SQLAnywhere:表示取Identity列的SQL是:SELECT ◎◎IDENTITY 
    2 SQL SERVER:表示取Identity列的SQL是:SELECT MAX(IDENTITYCOL) FROM + TableName 
    3 DB2:表示取Identity列的SQL是:values(IDENTITY_VAL_LOCAL())//不要select,DB2专用 
    4: Informix Serail:select first 1 dbinfo('sqlca.sqlerrd1') from systables 
    5: Informix Serail8:select first 1 dbinfo('serial8') from systables 
    6: teradata :相应的生成SELECT MAX(“实际存在的列名”) FROM TableName

    一、SQL Server中:

    1、创建表时指定标识列
    标识列可用 IDENTITY 属性建立,因此在SQL Server中,又称标识列为具有IDENTITY属性的列或IDENTITY列。
    下面的例子创建一个包含名为ID,类型为int,种子为1,递增量为1的标识列
    CREATE TABLE T_test
    (ID int IDENTITY(1,1),
    Name varchar(50)
    )

    2、在现有表中添加标识列
    下面的例子向表T_test中添加一个名为ID,类型为int,种子为1,递增量为1的标识列
    --创建表
    CREATE TABLE T_test
    (Name varchar(50)
    )

    --插入数据
    INSERT T_test(Name) VALUES('张三')

    --增加标识列
    ALTER TABLE T_test
    ADD ID int IDENTITY(1,1)

    3、判段一个表是否具有标识列

    可以使用 OBJECTPROPERTY 函数确定一个表是否具有 IDENTITY(标识)列,用法:
    Select OBJECTPROPERTY(OBJECT_ID('表名'),'TableHasIdentity')
    如果有,则返回1,否则返回0

    4、判断某列是否是标识列

    可使用 COLUMNPROPERTY 函数确定 某列是否具有IDENTITY 属性,用法
    SELECT COLUMNPROPERTY( OBJECT_ID('表名'),'列名','IsIdentity')
    如果该列为标识列,则返回1,否则返回0

    4、查询某表标识列的列名
    SQL Server中没有现成的函数实现此功能,实现的SQL语句如下
    SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.columns
       WHERE TABLE_NAME='表名' AND COLUMNPROPERTY(      
          OBJECT_ID('表名'),COLUMN_NAME,'IsIdentity')=1

    5、标识列的引用

    如果在SQL语句中引用标识列,可用关键字IDENTITYCOL代替
    例如,若要查询上例中ID等于1的行,
    以下两条查询语句是等价的
    SELECT * FROM T_test WHERE IDENTITYCOL=1
    SELECT * FROM T_test WHERE ID=1

    6、获取标识列的种子值

    可使用函数IDENT_SEED,用法:
    SELECT IDENT_SEED ('表名')

    7、获取标识列的递增量

    可使用函数IDENT_INCR ,用法:
    SELECT IDENT_INCR('表名')

    8、获取指定表中最后生成的标识值

    可使用函数IDENT_CURRENT,用法:
    SELECT IDENT_CURRENT('表名') 
    注意事项:当包含标识列的表刚刚创建,为经过任何插入操作时,使用IDENT_CURRENT函数得到的值为标识列的种子值,这一点在开发数据库应用程序的时候尤其应该注意。

    二、mysql

    create table test
    (
         id int auto_increment not null,
         name varchar(100) null,
         primary key(id)
    )

  • 相关阅读:
    23种设计模式(转载)
    RabbitMQ JAVA客户端调用
    JavaScript中的this
    RedisDesktopManager 踩坑之旅
    webmagic使用手册
    Maven 手动添加本地jar包
    根据端口号查询 进程 并杀掉进程
    从经典面试题看java中类的加载机制
    Java线程的5种状态及切换(透彻讲解)
    JVM 类加载机制详解
  • 原文地址:https://www.cnblogs.com/duanxz/p/2807459.html
Copyright © 2011-2022 走看看