違反了 PRIMARY KEY 約束 ''。不能在物件 '' 中插入重複鍵 但是還能成功插入資訊

  • 作者:由 匿名使用者 發表于 美食
  • 2021-08-11

違反了 PRIMARY KEY 約束 ''。不能在物件 '' 中插入重複鍵 但是還能成功插入資訊 匿名使用者 1級 2012-06-08 回答

主鍵列自增使用關鍵字identity(1,2) 其中1是表示從1開始增加,2是每次加2

例如:create table stuinfo

stuno int identity(1,1) ,

stuname varchar(20)

——新增主鍵約束

alter stuinfo add constraint PK_stuinfo_stuno primary key(stuno)

向表中插入資料時不需插自增列

insert into stuinfo values(‘張三’)

當identity(1,1)時 可以省略(1,1)即寫成identity

注意stuno如果是自增列,資料型別必須是int 且不能為空

違反了 PRIMARY KEY 約束 ''。不能在物件 '' 中插入重複鍵 但是還能成功插入資訊 匿名使用者 1級 2012-06-08 回答

主鍵:

PRIMARY KEY 約束唯一標識資料庫表中的每條記錄。

主鍵必須包含唯一的值。

主鍵列不能包含 NULL 值。

每個表都應該有一個主鍵,並且每個表只能有一個主鍵

只增列:

alter table talbeName Add ColumnName Int IDENTITY(1,1)

再插入資料時,不能插入自增列,有系統自動產生

如:

create table test

( id int identity(1,1),

name char(10)

id就是自增列

插入資料時

只能

insert into test(name)values(‘小李’)

select *from test 的到得結果就是

id name

1 小李

下面就是錯誤的

insert into test(id,name)values(‘23’,‘小李’)

違反了 PRIMARY KEY 約束 ''。不能在物件 '' 中插入重複鍵 但是還能成功插入資訊 與你同醉 1級 2012-06-08 回答

因為你插入一列。看列是否允許重複。

或表中存在重複行。有垃圾資料。

仔細查查表中的資料,清除重複行即可。

select * from 表名 where 列名 in

(select 列名 from 表名 group by 列名 having count(*)>1)

表名:不用解釋了吧。

列名:因為我不知道你sql中列的鍵值。所以你就慢慢試吧。

查出來後delete。

Top