http://www.chinesejy.com/jishu/508/519/2006061781665.html 主子表最常见的大概就是用在进销存.MRP.ERP里面,比如一张销售订单,订单Order(ID,OrderDate),订单明细OrderDetail(OrderID, ProductID, Num,Price)这个大概就是最简单的主子表了,两个表通过ID与OrderID建立关联,这里主键ID是自增的INT类型,OrderID是表OrderDetail的外键.当然,键的选择方法很多,现…
mysql数据库表的自增主键ID乱了,需要重新排序. 原理:删除原有的自增ID,重新建立新的自增ID. 1.删除原有主键: ALTER TABLE `table_name` DROP `id`; 2.添加新主键字段: ) NOT NULL FIRST; 3.设置新主键: ) NOT NULL AUTO_INCREMENT,ADD PRIMARY KEY(id);…
Mysql数据库表的自增主键ID号乱了,需要重新排列. 原理:删除原有的自增ID,重新建立新的自增ID. 1,删除原有主键:ALTER TABLE `table_name` DROP `id`; 2,添加新主键字段:ALTER TABLE `table_name` ADD `id` MEDIUMINT( 8 ) NOT NULL FIRST; 3,设置新主键:ALTER TABLE `table_name` MODIFY COLUMN `id` MEDIUMINT( 8 ) NOT NULL A…
知其然,知其所以然.在看到生成UUID的代码,后带给我的百度结合自己的经验再写下来的区别 一.UUID做主键: 优点: .保证数据在表和库都是独立的,有利于后续的分库 .合并表的时候主键不会重复 .有大量数据的时候主键不会像int那样越界 .有利于处理分布式存储的数据表 缺点: .字符串型占用空间(存储和索引都占用比较大的空间) .插入和查询比int主键差 二.int主键: 优点: .存储空间占用少 .查询速度比较快 .插入和更新性能也比较好 .简单容易记住 缺点: .分表略比UUID多一步操作…
通常我们在应用中对mysql执行了insert操作后,需要获取插入记录的自增主键.本文将介绍java环境下的4种方法获取insert后的记录主键auto_increment的值: 通过JDBC2.0提供的insertRow()方式 通过JDBC3.0提供的getGeneratedKeys()方式 通过SQL select LAST_INSERT_ID()函数 通过SQL @@IDENTITY 变量 1. 通过JDBC2.0提供的insertRow()方式 自jdbc2.0以来,可以通过下面的方式…
转自:http://blog.csdn.net/ultrani/article/details/9351573 作者已经写的非常好了,我不废话了,直接转载收藏: 通常我们在应用中对mysql执行了insert操作后,需要获取插入记录的自增主键.本文将介绍java环境下的4种方法获取insert后的记录主键auto_increment的值: 通过JDBC2.0提供的insertRow()方式 通过JDBC3.0提供的getGeneratedKeys()方式 通过SQL select LAST_IN…
最近在做老表的数据整理,发现有的表没有主键标识,.NET Core 无法一键生成模型,需要带有主键的表才可以,所以需要针对已有数据添加主键,这是我找到的两种方式. 1. 主键为int 或者bigint ALTER TABLE Atest ADD MainId int identity(1,1)  PRIMARY KEY; 2.主键为GUID ALTER TABLE dbo.Atest ADD  MainId uniqueidentifier NOT NULL CONSTRAINT DF_Ates…
项目开发中,有些固定数据在数据表中,主键是从1自增的,有时候我们会删除一些数据, 这种情况下,主键就会不连续.如何恢复到像第一次插入数据一样主键从1开始连续增长, 这里我找到一种解决方法: 如上面一张表,主键id是自增的 插入两条数据 此时我们想让主键为1,2... 首先我们取消主键,并且勾选掉,主键自增 然后我们设置一个不重复字段为主键 然后我们把id字段设置为null UPDATE testh set id = NULL 最后恢复主键 主键会自动从1开始连续增长 即使再插入一条数据,也是按照…
create sequence userlogin_ID increment by 1 start with 1 minvalue 1 maxvalue 9999999999999999 nocache order; 黄色部分为 表名_主键…
在编写程序时,数据库结构会经常变化,所以经常需要编写一些数据库脚本,编写完成后需发往现场执行,如果已经存在或者重复执行,有些脚本会报错,所以需要判断其是否存在,现在我就把经常用到的一些判断方法和大家分享下: 一.判断Oracle表是否存在的方法 declare tableExistedCount number; --声明变量存储要查询的表是否存在 begin select count(1) into tableExistedCount from user_tables t where t.tab…