创建有序的数据库GUID 主键

新项目的数据库使用GUID作为数据库主键。

主要是考虑以下方面:

1、后续可能有数据迁移

2、服务器和客户端间的Sync、Merge等操作,避免数据冲突

3、主键的业务无关性

4、初始数据的一致性(比如基础数据字典,测试数据等)

以下是使用GUID创建有序uniqueidentifier主键的脚本,记录以下

CREATE TABLE TestTable
(
Guid uniqueidentifier not null default(newsequentialid()),
Id int not null,
Text ntext not null,
DateTime datetime default getdate(),
CONSTRAINT PK_Guid PRIMARY KEY (Guid)
)

时间: 2024-08-24 06:30:50

创建有序的数据库GUID 主键的相关文章

[数据库]关于主键与外键

本文参考自:http://blog.csdn.net/bingqingsuimeng/article/details/51595560 一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 比如  学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 课程表(课程编号,课程名,学分) 其中课程编号是唯一的,课程编号就是一个主键 成绩表(学号,课程号,成绩) 成绩表中单一一个属性无法唯

数据库中主键与外键

在关系型数据库中,数据结构有逻辑结构和物理结构.物理结构指存储在物理介质上的数据文件的结构.逻辑结构即关系,也就是一张张的二维表.表中的一列即为一个字段(属性),代表的是实体的一个属性.表中的一行即为一条记录. 如:学生表中(学号,姓名,年龄,性别),在该表中有4个字段,代表学生实体的4个属性.表中的一行数据(001,张三,男,20),即一条记录,表示的是张三这个学生的信息.    在表中,用来唯一标识一条记录的字段集,叫做主关键字或者主关键码,简称主键(主码),而主键包含的属性(字段)叫做主属

MyBatis对不同数据库的主键生成策略

本文转自:http://289972458.iteye.com/blog/1001851  http://hi.baidu.com/zim_it/blog/item/8a2bd11205f5b56ecb80c4b7.html 在使用MyBatis做持久层时,insert语句默认是不返回记录的主键值,而是返回插入的记录条数:如果业务层需要得到记录的主键时,可以通过配置的方式来完成这个功能 针对Sequence主键而言,在执行insert sql前必须指定一个主键值给要插入的记录,如Oracle.D

mysql数据库修改主键自增及出现的问题

1.创建数据库: create database user ( uid int not null, username varchar(25) not null, password varchar(25) not null. primary key(uid) ); 该语句创建的数据库的主键是user,但是没有设置改字段自增,第一条数据就从0开始.向数据库插入第二条数据而不指定uid的时候就会报错.那如何修改该字段使其自增呢? alert table user modify uid int(4)au

数据库的主键与外键

数据库的主键与外键 一.什么是主键.外键:关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 比如:   学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 课程表(课程编号,课程名,学分) 其中课程编号是唯一的,课程编号就是一个主键 成绩表(学号,课程号,成绩) 成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以 学号和课程号的属性组是一个主键 成绩表中的学号不是

Oracle创建表、索引、主键、字段描述

-- 创建表 create table SX04_LBALANCE ( YEAR VARCHAR2(10) not null, PROGRAMNO VARCHAR2(40) not null, FDATE VARCHAR2(10) not null, FACCTCODE VARCHAR2(50) not null, FCURCODE VARCHAR2(3) not null, FAACCCREDIT NUMBER(19,4) default 0 not null, FAENDBAL NUMBER

是数据库设置主键自增的时候添加也可以自定义主键值

SET IDENTITY_INSERT  dbo.PDAUserInfo ON //开启当前表的可复制功能,仅在当前绘画中有效 insert into dbo.PDAUserInfo(ID,UserName) values(43,'asdf') SET IDENTITY_INSERT  dbo.PDAUserInfo OFF    //关闭当前表的可复制功能,仅在当前绘画中有效 insert into dbo.PDAUserInfo(UserName) values('asdf') 是数据库设置

MySQL数据库(主键、索引、外键、触发器...)

主键: 能够唯一标识表中某一行的属性或属性组.一个表只能有一个主键,但可以有多个候选索引.主键常常与外键构成参照完整性约束,防止出现数据不一致.主键可以保证记录的唯一和主键域非空,数据库管理系统对于主键自动生成唯一索引,所以主键也是一个特殊的索引. 索引: 是用来快速地寻找那些具有特定值的记录.主要是为了检索的方便,是为了加快访问速度, 按一定的规则创建的,一般起到排序作用. 唯一性索引:这种索引和前面的“普通索引”基本相同,但有一个区别:索引列的所有值都只能出现一次,即必须唯一. 注:当你的应

数据库设置主键外键

主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值.由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列. 主键的作用 主键的主要作用如下: (1)保证实体的完整性: (2)加快数据库的操作速度: (3) 在表中添加新记录时,数据库会自