MySQL上主键的重复条目
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL上主键的重复条目相关的知识,希望对你有一定的参考价值。
我的表只有单列ID
(admin登录密码)
因为每次程序启动时都会运行此代码,所以我可以使用creating database
语句防止creating tables
和IF 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上主键的重复条目的主要内容,如果未能解决你的问题,请参考以下文章