自增字段做外键害死人,血泪经验希望对新手有帮助。
时间:2011-11-26
来源:互联网
作者: Superion 发布时间: 2011-11-26
SET IDENTITY_INSERT 表名 on; ...新增 SET IDENTITY_INSERT 表名 off; go USE AdventureWorks; GO -- Create tool table. CREATE TABLE dbo.Tool( ID INT IDENTITY NOT NULL PRIMARY KEY, Name VARCHAR(40) NOT NULL ) GO -- Inserting values into products table. INSERT INTO dbo.Tool(Name) VALUES ('Screwdriver') INSERT INTO dbo.Tool(Name) VALUES ('Hammer') INSERT INTO dbo.Tool(Name) VALUES ('Saw') INSERT INTO dbo.Tool(Name) VALUES ('Shovel') GO -- Create a gap in the identity values. DELETE dbo.Tool WHERE Name = 'Saw' GO SELECT * FROM dbo.Tool GO -- Try to insert an explicit ID value of 3; -- should return a warning. INSERT INTO dbo.Tool (ID, Name) VALUES (3, 'Garden shovel') GO -- SET IDENTITY_INSERT to ON. SET IDENTITY_INSERT dbo.Tool ON GO -- Try to insert an explicit ID value of 3. INSERT INTO dbo.Tool (ID, Name) VALUES (3, 'Garden shovel') GO SELECT * FROM dbo.Tool GO -- Drop products table. DROP TABLE dbo.Tool GO
作者: roy_88 发布时间: 2011-11-26
作者: roy_88 发布时间: 2011-11-26
一个从 1开始
那个两个从 1亿或者10亿开始
前面还可以带个减号。
不知道这个满足你们不
作者: Beirut 发布时间: 2011-11-26
还有它的唯一性。当然还有N多用法。这里不一一举例了
作者: fredrickhu 发布时间: 2011-11-26
每个数据库上用不同标示初始值
一个从 1开始
那个两个从 1亿或者10亿开始
前面还可以带个减号。
不知道这个满足你们不
现在有50多个数据库,而且有些数据库需要不断的删除数据,这些数据库的数据都没有一定的顺序,顺序完全是随机的。(因为可能由于网络阻塞或停机维护等客观原因导致顺序错乱)
作者: Superion 发布时间: 2011-11-26
自增列存在是有它一定道理的。在程序处理的时候取行值比较容易,而且如果设置为聚集索引,效率很高。
还有它的唯一性。当然还有N多用法。这里不一一举例了
如果两张表是主外键关系,一张表的主键重建了,另一张表就要跟着修改,而且主键重建是很频繁的,平均一天就有1000多次重建,这样搞肯定是不行的,所以不能用自增主键做外键了。
作者: Superion 发布时间: 2011-11-26
作者: koumingjie 发布时间: 2011-11-26
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28