如何解决自动递增作为导致重复输入的主键
我希望ID和名称成为表的主键。我想在每次插入时增加ID,因此将其设置为auto_increment。问题是,当我在表中插入一个具有相同名称的新条目时,它会以一个新的ID插入它,并且有重复的条目具有相同的名称和不同的ID。我不想事先搜索表以查看是否有任何预先输入。请帮助我如何解决此问题。解决方法
我想你做了这样的事情
CREATE TABLE table1
id unsigned integer autoincrement,name varchar,....
primary key (id,name)
此主键不会选择唯一名称,因为即使有重复的“ 1”字段,自动递增的ID也会使该键整体上成为唯一的。
还要注意,长主键是个坏主意,PK越长,插入和选择的执行速度就越慢。这在InnoDB上尤其不利,因为每个辅助密钥中都包含PK,从而使索引文件膨胀。
改成这个
CREATE TABLE table1
id unsigned integer autoincrement primary key,....
unique index `name`(name)
,如果您希望它在名称上唯一,则需要在名称字段上添加唯一索引,然后可以对重复键使用mysql语法:对重复键使用mysql参考
,您可以将唯一索引应用于名称字段,或者,如果要存储人员,则允许重复的名称。
,添加UNIQUE(your_column_name
),在其中应将database3ѭ替换为数据库中的列。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。