• 数据库主键的自动增长之总结


      纠结了好久,不知道数据库主键该如何使用,进行数据库插入操作时,不知道怎么使处于主键的列自动进行增长,下面简单介绍一下,【SqlServer 2008数据库软件使用sql语句创建表的相关事项】主键的自动增长:

    方式一:

    设置“主键”的sql语句:primary key

    标识符:使得进行数据库表插入操作时,使主键自动增长,语句是:identity(1,1)

    1、使用sql语句进行创建表:

    create table student(
        id int identity(1,1) primary key,//主键的设置,还有主键的自动增长
        sid varchar(40) not null,
        sname varchar(30) not null
    )

    执行一下:创建表成功

    创建自动增长的主键表的具体方式:

    详见:http://www.cnblogs.com/joeblackzqq/archive/2011/01/24/1943584.html

    然后进行插入操作:

    insert into student (id,sid,sname) values ('232','哈哈')//或者insert into student (id,sid,sname) values (1,'232','哈哈')
    //上面的两种插入语句都不可以,都会报错的,因为id是主键,不能为空;是标识符,不需要插入这列的数据,系统会自动的添加数据列的数据。
    
    //所以,正确的写法是:
    insert into student (sid,sname) values('2020','gaga')
    得到的结果就是:

    方式二:

    项目中,每个表中都会有好多个字段名,为了使读效果增加,一般都会增加主键,然后主键自动增长(只是起到一个计数的作用而已),这就会省很大的事。

    在设计表的时候就需要增加“主键”且还需要“标识列”,这样子在进行插入操作的时候就可以直接将其字段名省略掉;

    比如:

      注意一:在编写sql语句时:其中flowId是主键,其他的都是普通的字段名    【sql语句中是没有flowId字段名的;】

      insert into dbo.Hishop_OrderRetuenFlow (RetuId, OrderId, LinkMan, LinkTel) 
      values (#retuid:VARCHAR#, #orderid:VARCHAR#, #linkman:VARCHAR#, #linktel:VARCHAR#)

      注意二:在进行插入操作时,写url路径时,其中插入的字段的值,也不需要写主键的【易错点】

      注意三:在进行前后台交互时,也不需要对此字段名进行命名或赋值什么的

     方式三:

    在创建不同类型的数据库,也会有不同的设置“主键、且主键自动增长”的方式:  如下

      其中Mysql数据库创建主键且主键自动增长时,可以直接对字段设置;然而Oracle数据库则不行,需要使用sequence(序列),实现主键的自动增长;

    详细见:http://blog.csdn.net/java3344520/article/details/4907591,{在oracle下触发器实现主键自增}

  • 相关阅读:
    Java参数传递方式
    C++成员函数的 重载、隐藏、覆盖分析(转)
    回调函数 (一)
    Java之String 专题二
    从10亿个浮点数中找出最大的1万个
    【onclick事件】【改变 HTML 内容innerHTML】【图片替换】【改变标签的css】【判断输入是否是数字】
    【页面加载】【九九乘法表】【document.write的功能_】【<script>直接显示数组】【声明新变量】
    Windows10 环境下安装 ElasticSearch
    数据包和数据报有何区别?
    NIO 通道和缓冲区
  • 原文地址:https://www.cnblogs.com/FanSunny/p/4911861.html
Copyright © 2020-2023  润新知