主键是自增长但是还是提示不能插入重复键

  今天客户那边的服务器被人强制关机了,然后系统就出问题了,明显是自增长的列但是却提示不能插入重复键

以下来自网络,

SQL 不能插入重复键-错误 主键列是自动增长

具体描述如下:
服务器: 消息 2627,级别 14,状态 1,行 1
违反了 PRIMARY KEY 约束 'PK_Student'。不能在对象 'Student' 中插入重复键。
语句已终止。

(我才用第二种才起作用)
 
产生原因:这个错误可能通过某个操作把自增列的种子给改小了,所以insert的时候报重复键错误。
解决方案:
1、直接在数据库上操作,取消自增长,再加上自增长,种子恢复正常。 但这种操作方式如果数据库比较大的话,会报超时的错误,可以使用第二种解决方案,通过语句来完成。
2、重置自动增长列种子: dbcc checkident('tb',reseed,业务表最大值+1) 第3个参数是业务表自动增长列最大值+1

转载于:https://www.cnblogs.com/hrx-star/p/4165238.html

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
为了完成注册功能,需要进行以下几个步骤: 1. 创建数据库表 首先,需要在数据库中创建一个表来存储用户信息。可以使用如下 SQL 语句来创建一个名为“user”的表: ``` CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL, `password` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; ``` 该表包含四个字段:id、username、password 和 email。其中,id 是自增长的主键;username 是唯一,用于保证用户名不重复。 2. 编写注册页面 编写注册页面,包括一个表单,要求用户输入用户名、密码和邮箱等信息。 3. 编写后端代码 在后端代码中,需要对用户输入的信息进行验证,包括验证用户名是否已存在、验证密码和确认密码是否一致等。如果验证通过,则将用户信息插入数据库中。可以使用如下 PHP 代码来实现: ``` <?php // 连接数据库 $conn = mysqli_connect("localhost", "username", "password", "database"); // 处理注册表单提交 if ($_SERVER["REQUEST_METHOD"] == "POST") { $username = $_POST["username"]; $password = $_POST["password"]; $email = $_POST["email"]; // 检查用户名是否已存在 $sql = "SELECT * FROM user WHERE username = '$username'"; $result = mysqli_query($conn, $sql); if (mysqli_num_rows($result) > 0) { echo "用户名已存在"; } else { // 插入用户信息到数据库 $sql = "INSERT INTO user (username, password, email) VALUES ('$username', '$password', '$email')"; if (mysqli_query($conn, $sql)) { echo "注册成功"; } else { echo "注册失败"; } } } // 关闭数据库连接 mysqli_close($conn); ?> ``` 其中,$username、$password 和 $email 分别为用户输入的用户名、密码和邮箱。首先,使用 SELECT 语句查询数据库,检查用户名是否已存在。如果存在,则返回“用户名已存在”的提示信息;否则,使用 INSERT 语句将用户信息插入数据库中,并返回“注册成功”的提示信息。 4. 完成注册流程 将注册页面和后端代码整合起来,完成注册流程。当用户填写完注册表单并提交后,后端代码会对用户输入的信息进行验证,并将合法的用户信息插入数据库中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值