Mysql 避免使用重复键时自动增量值的增量

Mysql 避免使用重复键时自动增量值的增量,mysql,Mysql,所以我想插入一个新行,但在检查之后,它并不存在 我的桌子很简单 CREATE TABLE IF NOT EXISTS table ( id INT NOT NULL AUTO_INCREMENT, pl VARCHAR(255) NOT NULL, num1 INT NOT NULL, num2 INT NOT NULL, num3 INT NOT NULL, PRIMARY KEY (pl) ) ENGINE=InnoDB; 因此,为了方便

所以我想插入一个新行,但在检查之后,它并不存在

我的桌子很简单

CREATE TABLE IF NOT EXISTS table
(
    id INT NOT NULL AUTO_INCREMENT,
    pl VARCHAR(255) NOT NULL,
    num1 INT NOT NULL,
    num2 INT NOT NULL, 
    num3 INT NOT NULL,

    PRIMARY KEY (pl)
) ENGINE=InnoDB;
因此,为了方便起见,我将值更改为简单值

我尝试在重复键更新pl=pl时将值(val,0,0,0)插入表(pl,num1,num2,num3) 但上述内容仍输入自动递增字段的记录原因

我也尝试了同样的方法,但是没有对重复的执行
将忽略插入到
中,但是我得到了相同的结果


那么,只有当主键不存在且不起任何作用时,才有办法插入行吗?(现在,在增量为+1的位置创建了一个新的相同行

您可以在创建表时向任意列或多列添加约束。您的意思是通过抛出错误来防止插入?您可以捕获错误。检查此项是的,我知道我捕获了错误,但我想有更好的方法来执行此操作,而不仅仅是划船和捕捉错误,你知道,似乎有点不专业。我只是想提高效率,否则我可以选择空行,然后更新。确实有效的一点,我很可能会添加到我的主键中,不管我最终在插入时使用什么方法,谢谢