违反了PRIMARY KEY约束'PK_t_sys_branch_grant'。不能在对象'dbo.t_sys_branch_grant'中插入重复键。
No changes made to database.
数据库哪里的问题,系统数据有重复吗? 到什么地方修改怎么弄,
USE
GO
/****** 对象: Table [dbo].[t_sys_branch_grant] 脚本日期: 01/17/2018 12:36:26 ******/
SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING OFF
GO
CREATE TABLE [dbo].[t_sys_branch_grant](
[oper_id] [varchar](4) NOT NULL,
[branch_no] [varchar](6) NOT NULL,
[data_grant] [varchar](1) NOT NULL DEFAULT ('0'),
[other] [varchar](20) NULL,
CONSTRAINT [PK_t_sys_branch_grant] PRIMARY KEY CLUSTERED
(
[oper_id] ASC,
[branch_no] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
可能是主键
重复了,数据库中存在这个主键对应的值,然后你现在又要把这个值插入进去。就会出现这个问题。改为update
应该没问题。
能详细说说主键对应的update,
改的主键怎么还是不对劲,是改错了吗
@Ваня: 你要插入数据的主键已经在数据库中存在了。
@Bluto: 现在已经有了怎么删除
sql 语句呀
@Bluto: 我现在很纳闷不知道怎么搞,什么都没加
主键重复,你别插入就好了
现在一直提示怎么删除
@Ваня: 那你就手动改一下,别让主键重复
@DanBrown: 自主要我之前没加什么东西,很纳闷
@Ваня: 你的主键是哪个?没有自增?都是varchar?
@DanBrown: 对,很蒙
@Ваня: 你想干什么?怎么设计数据库,首先你有个主键(一个字段),自增,不能为空,int型;
插入数据的时候,主键一般都是自动增长的,不需要去设置值,不然就出现了你上面的问题。如果一定要自己给主键赋值,则一定要保证每一行的这一列都不重复。
怎么删除,
@Ваня: delete tablename where id=id
“违反了PRIMARY KEY约束”,这个错误提示很清楚地告诉你怎么回事了。
如果你看过任何一本SQL入门的书,里面都会介绍这一点的。
要插入的数据 再数据表中已经存在, 主键要求唯一; 有重复数据自然就不可以插入了 找到重复数据, 改成不重复的就好
该删的都删了,很迷
@Transparent: 有点不明白; 你是要insert数据, 还是又跑了一边上面的脚本;
联合主键数据重复; 确认不是数据重复吗? 比如你要insert两条数据
这两条数据oper_id,branch_no的值都是一样的, 自然就违反了主键约束
看看图说话
现在 两个组合有重复
@Transparent: 说的已经很明白了啊,联合主键不能重复。不然肯定是保存不了的
@bky-zk: 现在是可以保存,但是运行出来是上面那样,现在修改到不行
@Transparent: 上面那样是哪样呢(No changes made to database)?
@bky-zk:
违反了PRIMARY KEY约束'PK_t_sys_branch_grant'。不能在对象'dbo.t_sys_branch_grant'中插入重复键。
No changes made to database.
@bky-zk: 我什么也没动,之前多余数据库我都删了
@Transparent: 你通过什么方式删除的,事务提交了?要不你在执行sql的客户端执行下commit试试