【问题标题】:My auto increment does not start with 1我的自动增量不是从 1 开始
【发布时间】:2017-04-12 03:19:36
【问题描述】:
 CREATE TABLE DUser (
 [ID]           INT          NOT NULL,  [DUser_Id]  VARCHAR(45) NULL,
 [Name]         VARCHAR (70) NOT NULL,
 [DOB]          DATE         NOT NULL,
 [Password]     VARCHAR (30) NOT NULL,
 [Email]        VARCHAR (70) NOT NULL,
 [Phone_Number] INT          NOT NULL,
 [Gender]       VARCHAR (6)  NOT NULL,  PRIMARY KEY CLUSTERED ([ID] ASC) );


Create TRIGGER DUser_IDColumn    
ON  DUser    
AFTER  INSERT 
AS 
BEGIN
SET NOCOUNT ON;

UPDATE duserid SET    
DUser_ID = 'U' + LEFT('0000' + CAST(inserted.ID AS VARCHAR(10)), 5) FROM       DUser duserid

INNER JOIN inserted

ON duserid.ID = inserted.ID

END GO

ID 从 U00000 开始,而我希望它从 U00003 开始​​,因为有预定义的值。 请帮助我!!

When I Create an user account

【问题讨论】:

  • 标题暗示你希望你的自动增量开始一个1。屏幕截图显示它从0 开始,在你的问题中你说你希望它从3 开始......它是哪一个?
  • 另外:Insert 触发器……有点奇怪。你希望ID 和DUser_Id 同步吗?如果是:为什么还要跟踪它?如果不是:有什么问题?你为什么要故意去规范化你的数据库?
  • 第三个,因为我刚刚在屏幕截图上注意到它:不要在数据库中存储密码!。存储哈希和盐,但从不实际密码!

标签: c# mysql asp.net-mvc model-view-controller auto-increment


【解决方案1】:

看起来您需要使用ALTER 语句重新设置AUTO-INCREMENT 的种子,如下所示

ALTER TABLE DUser AUTO_INCREMENT = 1

从您发布的代码中,我根本看不出它是 autoincrement 列。那么你不可能期望它从 1 开始。它看起来像自定义标识列。

CREATE TABLE DUser (
 [ID]           INT          NOT NULL

【讨论】:

  • 我该如何改变它?我想在创建新的 DUser_ID 时自动递增。目前我有两个预定义用户,U00001、U00002。当我创建时,它变成 U00000 而不是 U00003
  • @PercyPig,使用ALTER 语句。在 stack-overflow 中搜索......你会得到很多现有的答案。
【解决方案2】:

你不能在你创建表“DUser”的脚本中放类似

`AUTO_INCREMENT=3`

? 所以它会像

CREATE TABLE DUser (
[ID]           INT          NOT NULL,  
[DUser_Id]  VARCHAR(45) NULL,
[Name]         VARCHAR (70) NOT NULL,
[DOB]          DATE         NOT NULL,
[Password]     VARCHAR (30) NOT NULL,
[Email]        VARCHAR (70) NOT NULL,
[Phone_Number] INT          NOT NULL,
[Gender]       VARCHAR (6)  NOT NULL,  PRIMARY KEY CLUSTERED ([ID] ASC) )
ENGINE=InnoDB AUTO_INCREMENT=3;

【讨论】:

    猜你喜欢
    • 2013-10-27
    • 2017-11-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    • 2012-05-31
    • 2023-03-22
    • 2011-06-09
    相关资源
    最近更新 更多