SqlServer主键和自增长设置】的更多相关文章

SqlServer主键和自增长设置 Intro 有时候有些 sql 语句有些不太记得了,谨以此文备忘. 设置主键以及自增长可分两种情况: 新创建表 表已创建但是没有设置主键和自增长 新创建表 创建表 sql: CREATE TABLE [dbo].[TestTable]( [Id] BIGINT PRIMARY KEY IDENTITY(1,1), [Extra] NVARCHAR(MAX), [CreatedAt] DATETIME NOT NULL DEFAULT(GETDATE()), […
今天需要给有500万条数据的表添加主键和自增长列,其中最大的难度在于如何UPDATE这500万多条数据,开始吧! 1.先给表添加一个字段叫ID,并允许空 2.查询表,我想到了使用其中的时间列排序来创建表的序号来生成我们想要的自增列ID. --其中查询出来的字段将作为我UPDATE时的匹配条件 SELECT row_number() over(order by InsertTime asc) as num,UserID cUserID,Score cScore,InsertTime cInsert…
因为Oracle数据库而言 不能够像SqlServer和MySql一样主键自增 而且MyBatis也没有提供直接的主键自增方法 所以我们自己使用查询语句来实现自增 实现代码: <insert id="Method" parameterType="package.Class" useGeneratedKeys="true" flushCache="true"> <selectKey keyProperty=&q…
public int insert(String cName, String ebrand, String cGender) { String sql = "insert into Cloth (cname,ebrand,cgender) values(?,?,?) "; Connection conn = DruidUtil.getConn(); PreparedStatement prep = null; ResultSet rs = null ; try { prep = con…
在实现分库分表的情况下,数据库自增主键已无法保证自增主键的全局唯一.为此,MyCat 提供了全局sequence,并且提供了包含本地配置和数据库配置等多种实现方式,实现方式主要有三种:本地文件方式.数据库方式.本地时间戳算法. 一.本地文件方式 原理:此方式MyCAT将sequence配置到文件中,当使用到sequence中的配置后,MyCAT会更下conf中的sequence_conf.properties文件中sequence当前的值. 譬如: #default global sequenc…
一.对主键的修改 主键值都会带有主键约束,当执行update操作或是其他操作的时候就会受到限制无法修改,解决的方法是:取消主键约束->删掉主键列->插入修改后的主键值. (1)取消主键约束 取消主键约束的SQL语句如下: alter table [表名] drop constraint [主键名]输入表名和主键名时不要带中括号(下同),这里值得说明的是[主键名]并不是主键所在的字段名.主键名如果没有指定系统会自动分配一个,这时就需要查询主键名,查询主键名的方法如下: --使用sql存储方式进行…
非空(not null).唯一(unique key).主键(primary key).自增长(auto_increment).默认约束(default) 准备基础环境: mysql> create database mydb2;             #创建一个名为 mydb2的数据库Query OK, 1 row affected (0.00 sec) mysql> show databases;                     #查看创建的数据库, mydb2已经创建成功.+-…
  前面我们介绍了MyCat的分库分表操作,那么同一张表中的数据会被保存在不同的数据库中,那么这就涉及到了主键维护的问题,此时肯定不能使用单个数据库中id自增的方式来处理了,这时我们就可以通过MyCat中提供的几种增长的方式来实现 全局主键自增 一.本地文件自增方式   首先我们来看下第一种方式,也就是本地文件自增方式 1. 修改分片策略   我们原来配置的分片策略crc32slot是不支持主键自增的,所以我们需要修改为auto-sharding-long 2. 修改server.xml文件  …
按照正常的SQL语句,创建一个数据表,并设置主键是这样的语句: ), EventType )) 但使用这种办法,在SQLite中创建的的数据表,如果使用Insert语句插入记录,如下语句: INSERT INTO Sample VALUES(null, '2013-12-26', 'hello.txt', 'Remove') 那么在实际添加的记录中,主键EventId对应的值不是一个自增的整数,而是一个null值. 经查询得知,在SQLite数据库中,使用int数据类型无法将该主键设置为自增,只…
主键(primary key)约束.外键(foreign key)约束.唯一(unique)约束.检查(check)约束.默认值(default)约束实例 Oracle 有如下类型的约束:NOT NULL(非空).UNIQUE Key(唯一约束).PRIMARY KEY(主键约束).FOREIGN KEY(外键约束).CHECK约束Oracle使用SYS_Cn格式命名约束.创建约束:在建表的同时创建.建表后创建约束的类型有如下几种:C (check constraint on a table) …
设置此命令后可以往主键插入值 set IDENTITY_INSERT 表名 on set IDENTITY_INSERT 表名 off 注意: 此语句是一个整体操作 反例: 先单步执行:set IDENTITY_INSERT 表名 on 再单步执行 :insert into 表名()values() 再执行 set IDENTITY_INSERT 表名 off 正确: 作为整体全部选中,再执行 set IDENTITY_INSERT 表名 on insert into 表名()values()…
*主键 主键就是数据行的唯一标识.不会重复的列才能当主键.一个表可以没有主键,但是会非常难以处理,因此没有特殊理由表都要设定主键. *主键特点:1不能重复的列.2主键不能为null. *同名时如何处理:王洋(大) 王洋(小) *主键有两种选用策略: 业务主键和逻辑主键. 业务主键是使用有业务意义的字段做主键,比如身份证号.银行账号等: 逻辑主键是使用没有任何业务意义的字段做主键,完全给程序看的,业务人员不会看的数据.因为很难保证业务主键不会重复(身份证号重复).不会变化(帐号升位),因此推荐用逻…
GO --判断表是否存在方式1 if object_id(N'EF_User',N'U') is null --判断表是否存在方式2 --if not exists (select * from dbo.SysObjects WHERE id = object_id(N'[EF_User]') AND OBJECTPROPERTY(ID, 'IsTable') = 1) begin --直接创建自增且指定主键约束的表 CREATE TABLE [dbo].[EF_User]( ,) not nu…
*主键 作用:唯一标识表中的一条记录. *特点: 1不能重复的列. 2主键不能为null. *同名时如何处理:王洋(大) 王洋(小) *主键有两种选用策略: 业务主键和逻辑主键. 业务主键是使用有业务意义的字段做主键,比如身份证号.银行账号等: 逻辑主键是使用没有任何业务意义的字段做主键,完全给程序看的,业务人员不会看的数据.因为很难保证业务主键不会重复(身份证号重复).不会变化(帐号升位),因此推荐用逻辑主键. *选择什么样的列作为主键: 1.不允许为空的列. 2.没有重复的列. 3.与实际业…
powerdesigner 版本12.5 创建表就不说了.下面开始介绍设置自动增长列. 1 在表视图的列上创建.双击表视图,打开table properties ———>columens ,双击要设置的列(显示列的序号的那个按钮,单击后,会显示横向的黑色箭头).打开column properties 对话框. 在 ‘general’ 项中 的最下面,找到 sequence下拉框 ,后面有三个按钮就 ‘create’,‘select’,‘properties’. 新建的话就点击‘create' 打…
powerdesigner 版本12.5 创建表就不说了.下面开始介绍设置自动增长列. 1 在表视图的列上创建.双击表视图,打开table properties ———>columens ,双击要设置的列(显示列的序号的那个按钮,单击后,会显示横向的黑色箭头).打开column properties 对话框. 在 ‘general’ 项中 的最下面,找到 sequence下拉框 ,后面有三个按钮就 ‘create’,‘select’,‘properties’. 新建的话就点击‘create' 打…
1.Model 配置 [PrimaryKey(PrimaryKeyType.Assigned,"ID")] 2.使用时要手动赋值…
1.首先设置好实体类:将类型设置为 @TableId(type = IdType.INPUT) 2.在插入数据前将id赋值给实体类对象即可…
@Id @SequenceGenerator(name="increment") @GeneratedValue(strategy=GenerationType.AUTO, generator="increment") public Integer getId() { return id; } 经测试,MySql数据库可用.…
在Dbcontext中作如下添加: protected override void OnModelCreating(DbModelBuilder modelBuilder) { modelBuilder.Entity<bbsUsersEntity>().Property(e => e.UserId). HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); }…
-- 主键设置:xx_id number(24) primary key 1 create sequence XX_seq --序列名称 increment by 1 -- 每次加几个 start -- 从1开始计数 nomaxvalue --NOMAXVALUE -- 不设置最大值 order nocycle -- 一直累加,不循环 cache ; --创建xx表序列 create or replace trigger xx_tg before insert on xx for each ro…
写在前面 目的是测试将csv文件内容导入到表中, 同时记录一下自增主键的设置. 测试采用MySQL8.0. 新建表customer_info如下, 未设置主键. 修改上表, 添加主键id, 并设置为自增. ALTER TABLE customer_info ADD COLUMN id INT AUTO_INCREMENT NOT NULL PRIMARY KEY; 导入步骤 1.为了模拟数据, 直接把这三条记录导出到csv文件中. 2.将该文件导入到表customer_info中. csv文件中…
一.子查询 子查询,又叫做嵌套查询. 将一个查询语句做为一个结果集供其他SQL语句使用,就像使用普通的表一样,被当作结果集的查询语句被称为子查询. 子查询有两种类型: 一种是只返回一个单值的子查询,这时它可以用在一个单值可以使用的地方,这时子查询可以看作是一个拥有返回值的函数: 另外一种是返回一列值的子查询,这时子查询可以看作是一个在内存中临时存在的数据表. 示例: --表一:学生表   student                      |--表二:教师表        teacher-…
参考了多篇文章,分别记录,如下. 下面是第一篇的总结 http://www.jb51.net/article/76007.htm: 在MySQL中,InnoDB引擎表是(聚集)索引组织表(clustered index organize table),而MyISAM引擎表则是堆组织表(heap organize table). 聚集索引是一种索引组织形式,索引的键值逻辑顺序决定了表数据行的物理存储顺序: 而非聚集索引则就是普通索引了,仅仅只是对数据列创建相应的索引,不影响整个表的物理存储顺序.…
oracle 主键自动增长 这几天搞Oracle,想让表的主键实现自动增长,查网络实现如下: create table simon_example ( id number(4) not null primary key, name varchar2(25) ) -- 建立序列: -- Create sequence create sequence SIMON_SEQUENCE minvalue 1 maxvalue 999999999999999999999999999 start with 1…
oracle 主键自动增长 2009-12-11 16:07:00|  分类: 数据库资料|字号 订阅     这几天搞Oracle,想让表的主键实现自动增长,查网络实现如下: create table simon_example ( id number(4) not null primary key, name varchar2(25) ) -- 建立序列: -- Create sequence create sequence SIMON_SEQUENCE minvalue 1 maxvalu…
mysql并非只有主键才能自增长,而是设为键的列就可以设置自增长.   如下: CREATE TABLE t1 ( id INT, col1 INT auto_increment NOT NULL ); 结果如下:   如果把col1列设为键,就可以创建自增. CREATE TABLE t1 ( id INT, col1 INT auto_increment NOT NULL, key(col1) ); 结果如下:   如果我们把id设为主键,仍然可以创建成功. CREATE TABLE t2…
说明:MyCAT自增长主键和返回生成主键ID的实现 1) mysql本身对非自增长主键,使用last_insert_id()是不会返回结果的,只会返回0:这里做一个简单的测试 创建测试表 -------------------------------------- --创建测试表 ------------------------------------- USE test; CREATE TABLE IF NOT EXISTS t_auto_increment ( id INT NOT NULL…
这周自己在构思一个项目的表的设计,由于是第一次,所以走了很多弯路,也遇到了几个问题,这里暂时贴上来. 我用PowerDesign设计出一部分关联表的ER图之后,导出了sql文件之后用navicat导入之后发现一些属性没设置(由于本人暂时不熟悉PowerDesigner,正学习使用中),比如我想在navicat中设置主键的自增长,结果发现报错,这是由于我里面的主键在其他表中充当了外键,所以我目前知道的方法就是,只能将与他关联的另一张表的外键给删了,再去设置自增长,再关联起来,就好了.…
建立主键并设置自动增加的办法好好几种,这里记录我测试过的: drop table pro_process; CREATE TABLE "public"."pro_process" ( "id" SERIAL primary key, //设置主键并自动增长 "county_code" ) COLLATE "default" NOT NULL, "county_name" ) COLLAT…