在JAVA连接的数据库中插入数据时如何避免重复信息~
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在JAVA连接的数据库中插入数据时如何避免重复信息~相关的知识,希望对你有一定的参考价值。
求完整代码~ 那查询 插入 什么的 怎么用函数将它们串在一起
参考技术A 很简单,在插入数据库之前,先查询一下信息在数据库中是否存在。如数据表(User)字段有:
id
name
age
即将插入一条信息【1,“名字”,22】
在插入数据之前,先
select
count(*)
from
User
where
id=1
and
name='名字'
and
age=22
假若查询出来不为0,那么数据就重复了。
根据这条线,很容易写出完整代码了。 参考技术B 给你要避免重复的字段建立唯一性约束,到时候java里捕获异常就可以了
如何在SQL Server中使用用户定义的表类型插入数据时避免重复记录
我试图使用我的.net应用程序在数据库中插入整个模型。我使用的是用户定义的表类型。
这是我的程序和用户定义的表;我正在使用SQL Server 2012。
CREATE TYPE [dbo].[TmpAccessRequest] AS TABLE
(
[RequestId] [int] NULL,
[RequesterID] [int] NULL,
[RequestType] [int] NULL,
[NextApprover] [int] NULL,
[RequestStatus] [varchar](100) NULL,
[Delegation] [int] NULL,
[CreatedOn] [date] NULL,
[CreatedBy] [varchar](100) NULL,
[Description] [varchar](max) NULL,
[IsSepecialRequest] [bit] NULL,
[DelegationDetailID] [int] NULL,
[IsActive] [bit] NULL,
[IsDeleted] [bit] NULL,
[ModifiedOn] [date] NULL
)
GO
CREATE PROCEDURE [dbo].[proc_SaveAccessRequest]
(@TmpAR TmpAccessRequest READONLY,
@IsUAMSRequest BIT,
@RequestID INT OUTPUT)
AS
BEGIN
INSERT INTO tblRequests (RequesterID, RequestType, NextApprover, RequestStatus,
Delegation, CreatedOn, CreatedBy, Description,
IsSepecialRequest, DelegationDetailID, IsActive, IsDeleted, ModifiedOn)
SELECT
RequesterID, RequestType, NextApprover, RequestStatus,
Delegation, CreatedOn, CreatedBy, Description,
IsSepecialRequest, DelegationDetailID, IsActive, IsDeleted, ModifiedOn
FROM
@TmpAR
SET @RequestID = SCOPE_IDENTITY()
--SET @RequestID=IDENT_CURRENT('tblRequests')
SELECT @RequestID
END
我想检查重复数据是否不应同时插入。那么我该如何使用用户定义的表类型呢?
答案
请查找对脚本所做的更改,以避免插入重复记录。所以我认为两列数据应该是唯一的,以避免重复用于用户理解目的
CREATE PROCEDURE [dbo].[proc_SaveAccessRequest]
(
@TmpAR TmpAccessRequest READONLY,
@IsUAMSRequest bit,
@RequestID int OUTPUT
)
AS
BEGIN
Insert into tblRequests
(
RequesterID
,RequestType
,NextApprover
,RequestStatus
,Delegation
,CreatedOn
,CreatedBy
,[Description]
,IsSepecialRequest
,DelegationDetailID
,IsActive
,IsDeleted
,ModifiedOn
)
SELECT
RequesterID
,RequestType
,NextApprover
,RequestStatus
,Delegation
,CreatedOn
,CreatedBy
,Description
,IsSepecialRequest
,DelegationDetailID
,IsActive
,IsDeleted
,ModifiedOn
FROM @TmpAR
WHERE NOT EXISTS ( SELECT 1
FROM tblRequests i
INNER JOIN @TmpAR o
ON i.RequesterID = o.RequesterID
AND i.RequestType = o.RequestType
AND i.NextApprover = o.NextApprover)
SELECT @RequestID = SCOPE_IDENTITY()
SELECT @RequestID
END
以上是关于在JAVA连接的数据库中插入数据时如何避免重复信息~的主要内容,如果未能解决你的问题,请参考以下文章