MySQL上主键的重复条目

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL上主键的重复条目相关的知识,希望对你有一定的参考价值。

我的表只有单列ID(admin登录密码)

因为每次程序启动时都会运行此代码,所以我可以使用creating database语句防止creating tablesIF NOT EXIXTS发生错误。

由于adminLogin表应该是第一次初始化,当用户重新运行程序时,会发生Duplicate entry for primary key错误。

我使用IF NOT EXISTS插入表格,但还有一些错误!

我的桌子:

错误:

答案

您正在尝试插入相同的值。 PK应该是独一无二的。

SET ID为自动增量。

CREATE TABLE `table_code` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `your_column` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=latin1;
另一答案

另一种可能性

INSERT INTO adminLogin(ID) VALUES(100) ON DUPLICATE KEY UPDATE ID=ID;
另一答案

您可以使用INSERT IGNORE。

INSIGN IGNORE进入管理员价值观(200);

另一答案

INSERT IGNORE INSERT ...在DUPLICATE KEY UPDATE ... REPLACE INTO可以正常工作而不会出错。根据您的需要,有些可能比其他用户更好。

以下是各自的简要优缺点:

INSERT IGNORE:优点:易于编写缺点:如果插入的数据较新,旧数据将被保留

INSERT ... ON DUPLICATE KEY UPDATE ...优点:可以插入或更新可能包含更多最新数据的特定列缺点:更难写入查询

REPLACE INTO优点:可以插入和更新可能包含更新数据的列。重复密钥更新比插入更快。缺点:即使只有一些列可能有更新的数据,也会覆盖每一列。如果要插入多行,则替换为可能会覆盖您不想覆盖的现有行的数据。

以上是关于MySQL上主键的重复条目的主要内容,如果未能解决你的问题,请参考以下文章

错误 #1062 主键的 Mysql 重复条目

MySQL 错误:主键的重复条目“xxx”

如何避免没有主键和唯一键的重复条目?

[转]mysql大表更新sql的优化策略

mysql大表更新sql的优化策略(转)

限制主键的最大条目