Python mysql在表中插入重复值
我试图用Python将值插入到MySQL表中,我有一些值,但我不考虑复制键/非复制,但我希望每个值都被插入。 对于我的mysql编码,我应该做哪些更改来插入重复项Python mysql在表中插入重复值,python,mysql,sql,Python,Mysql,Sql,我试图用Python将值插入到MySQL表中,我有一些值,但我不考虑复制键/非复制,但我希望每个值都被插入。 对于我的mysql编码,我应该做哪些更改来插入重复项 for name,hobby in p: print name,hobby cursor.execute( '''INSERT INTO Details (Names, Hobby) VALUES (%s, %s)''', (name,hobby)) 我得到以下错误 I
for name,hobby in p:
print name,hobby
cursor.execute(
'''INSERT INTO Details (Names, Hobby)
VALUES (%s, %s)''',
(name,hobby))
我得到以下错误
IntegrityError: (1062, "Duplicate entry 'Leelal' for key 'PRIMARY'")
请帮助我将重复的值放入表中
表架构:
Id | Names | Hobby
有没有一种方法可以自动增加Id,只要列表中有姓名和爱好?我认为问题在于详细信息表有主键设置。为了插入重复项,您需要删除主键,或者将其更改为足够唯一,以使其不被视为重复项 看看您的表创建脚本,我假设您有类似的内容
CREATE TABLE Persons
(
ID int NOT NULL,
Name varchar(255) NOT NULL,
Hobby varchar(255),
PRIMARY KEY (Name)
)
CREATE TABLE MyTable
(
ID INTEGER AUTO_INCREMENT PRIMARY KEY
Name varchar(255) NOT NULL,
Hobby varchar(255),
)
删除主键
如果您想将Id作为主Id,请创建如下表
CREATE TABLE Persons
(
ID int NOT NULL,
Name varchar(255) NOT NULL,
Hobby varchar(255),
PRIMARY KEY (Name)
)
CREATE TABLE MyTable
(
ID INTEGER AUTO_INCREMENT PRIMARY KEY
Name varchar(255) NOT NULL,
Hobby varchar(255),
)
如果表中的属性(列)是主键(或唯一键),则它永远不能接受重复项。只要主键(可能是ID)没有重复项,就可以插入重复项,例如
ID | Name | Hobby |
1 John Play
2 John Play
3 Steve Running
4 Steve Running
(请确保将主键设置为自动递增。以下是教程:)
请向我们展示您拥有的表架构及其键/索引。你不可能既添加重复项又保留主键。但是我需要将id作为姓名和爱好的增量,那么它是否会自动增量/我是否应该进行更改?@user3886307如果你的id是主键,那么是的,你的id将自动被添加incremented@GravityM-这在MySQL中是真的吗?如果他们只将它设置为主键,它会自动递增吗?我怀疑他们需要做自动增量。根据post,您似乎不能将其作为一个函数来为您递增。@user3886307是的,ID类型为integer,您应该设置自动递增。如何设置自动递增?