主键重复插入
来源:互联网 发布:广联达软件开发怎么样 编辑:程序博客网 时间:2024/05/18 11:47
PRIMARY KEY 違反、制約 'PK_T2': オブジェクト 'T2' には重複したキーは挿入できません。/r/nステートメントは終了されました。
分析:上述问题是说往表T2中进行插入时候,主键重复插入。因为一个表可能有1个或多个主键,但是不论有几个,数据库中的表对主键而言都要唯一。
①
首先建立一个学生表,SNO为主键
CREATE TABLE Student_Info
(
SNO INT CONSTRAINT S1 PRIMARY KEY,
SNAME CHAR(6) CONSTRAINT S2 NOT NULL,
SEX CHAR(2) CONSTRAINT S3 CHECK(SEX IN ('0','1')),
BIRTHDAY DATETIME
)
②向该表中插入3条数据
INSERT INTO Student_Info
SELECT 1,'TOM','1','1983/04/15'
UNION ALL
SELECT 2,'HERRY','0','1983/04/16'
UNION ALL
SELECT 3,'JIM','1','2008/10/17'
③如果我们使用经常用到的SQL 来再一次把 姓名是TOM的这条信息插入一次。
Insert Into Student_Info (SNO,SNAME,SEX,BIRTHDAY)
Values( 1,'TOM','1','1983/04/15')
就会出现我们上述所说的错误。即主键重复不能重复插入。
④下面我们不用第三步的SQL 而是利用程序代码形式以DataSet方式在DataSet表中添加一行,同样把新添的该行赋值为上述TOM信息,然后利用Update 方法更新回数据库。看看会如何呢?
string strConn="Data Source=.;Initial Catalog=Test;User ID=sa;Password=";
SqlConnection conn=new SqlConnection (strConn);
SqlCommand cmd=new SqlCommand ("select * from Student_Info", conn);
SqlDataAdapter sda = new SqlDataAdapter(cmd);
//自动生成用于数据集更新的命令
SqlCommandBuilder cb=new SqlCommandBuilder(sda);
//填充数据集
DataSet public_ds =new DataSet();
sda.Fill (public_ds,"Student_Info");
//修改数据集—此处把TOM信息再次插入
DataRow drRow = public_ds.Tables[0].NewRow();
drRow["SNO"]=1;
drRow["SNAME"]="TOM";
drRow["SEX"]="1";
drRow["BIRTHDAY"]="1983/04/15";
public_ds.Tables[0].Rows .Add(drRow);
//用更改后的数据集更新数据库
sda.Update(public_ds,"Student_Info");
- 主键重复插入
- mysql主键唯一键重复插入解决方法
- MySql避免重复插入记录(根据主键判重)
- [MySQL日记]主键唯一键重复插入解决方法
- MySQL自增主键删除后插入新记录主键重复问题
- 主键id是自增的,插入数据还是提示 SQL 不能插入重复键
- mysql 忽略主键冲突、避免重复插入的几种方式
- mysql忽略主键冲突、避免重复插入的几种方式
- mysql 忽略主键冲突、避免重复插入的几种方式
- mysql忽略主键冲突、避免重复插入的几种方式
- mysql 忽略主键冲突、避免重复插入的几种方式
- mysql忽略主键冲突,避免重复插入的几种方式
- mysql忽略主键冲突、避免重复插入的几种方式
- mysql忽略主键冲突、避免重复插入的几种方式
- 除主键外 其余内容相同 避免重复插入的办法
- mysql 插入数据是主键或唯一值重复的解决方法
- Mysql忽略主键冲突,避免重复插入的几种方式
- mysql InnoDB表插入操作报duplicate entry for primary 却查询不到重复的主键
- Windows CE(EVC)下操作GPIO的方法——转载
- 2008年12月01号_一_晴_补充
- LINQ to SQL语句(1)之Where
- 关于Import 导入模块
- RCP 开发应用程序
- 主键重复插入
- EVC下如何直接访问寄存器?
- えーら--输入列名不属于表
- 互联网营销之美(转载)
- 优化MyEclipse的方法
- error LNK1112
- UML 基础: 类图
- Struts2中文乱码解决方法
- PtInRect