当前位置: 首页>后端>正文

sqlalchemy2 生成 sql生成guid



--创建数据库
create database MyTest
--引用数据库
use MyTest
/*
uniqueidentifier(Guid)字段

在MS Sql 数据库中可以在建立表结构是指定字段类型为uniqueidentifier,
并且其默认值可以使用NewID()来生成唯一的Guid(全局唯一标识符).使用

NewID生成的比较随机,如果是SQL 2005可以使用NewSequentialid()来顺序生成,
在此为了兼顾使用SQL 2000使用了NewID().

NewSequentialid()只能在创建表时当做默认值设置,不能在插入记录时使用
*/

create table [User]
(
    [Guid] uniqueidentifier NOT NULL  DEFAULT(NewSequentialid()) primary key ,
    StudentId int not null ,
    Email varchar(100) not null,
    [Password] varchar(100) not null
) 

--给创建好的表设置主键
alter table [User] add constraint PK_Guid primary key([Guid])
--删除约束
alter table [User] drop constraint PK_Guid

--修改字段类型
alter table [User] alter column StudentId int not null
alter table [User] alter column Email varchar(100) not null
alter table [User] alter column [Password] varchar(100) not null
--增加列
alter table [User] add column XX int not null
--删除列
alter table [User] drop column XX

--删除表
drop table [User]


insert into [User](StudentId,Email,[Password]) values(1001,'100@qq.com','0000')
--sql 所有的表建好后,为表添加外键约束 

alter table B

--cc是外键约束名,不能重复,也不能是int类型(如1,2,3)

add constraint cc

--B表里的需要约束的字段(id)

foreign key (id)

--A表后的(id)可省略

references A (id)

 

/*
使用INT做主键的优点:

    1、需要很小的数据存储空间,仅仅需要4 byte 。

    2、insert和update操作时使用INT的性能比GUID好,所以使用int将会提高应用程序的性能。

    3、index和Join 操作,int的性能最好。

    4、容易记忆。

    5、支持通过函数获取最新的值,如:Scope_Indentity() 。

使用INT做主键的缺点

    1、如果经常有合并表的操作,就可能会出现主键重复的情况。

    2、使用INT数据范围有限制。如果存在大量的数据,可能会超出INT的取值范围。

    3、很难处理分布式存储的数据表。

使用GUID做主键的优点:

    1、它是独一无二的。

    2、出现重复的机会少。

    3、适合大量数据中的插入和更新操作。

    4、跨服务器数据合并非常方便。

使用GUID做主键的缺点:

    1、存储空间大(16 byte),因此它将会占用更多的磁盘大小。

    2、很难记忆。join操作性能比int要低。

    3、没有内置的函数获取最新产生的guid主键。

    4、GUID做主键将会添加到表上的所以其他索引中,因此会降低性能。

总结:

    上面列出了GUID和INT两种数据类型做主键优缺点。我觉得,对于大数据量,建议使用guid做主键。而使用int会得到最佳的性能。
*/

 


https://www.xamrdz.com/backend/3m71926510.html

相关文章: