低代码平台 数据库字段值不重复

文章讨论了在开发过程中如何确保数据库中区域编码和区域名称的唯一性,通过在存储过程中使用SQL查询和错误处理机制来避免重复值,提高数据一致性。
摘要由CSDN通过智能技术生成

在开发过程中,要求表里某字段值唯一

一、场景

在单据,要求某字段值不重复
查看数据模型:

查看单据:
在这里插入图片描述

二、问题

区域编码,区域名称不重复

三、解决方案

1)数据库加索引

在这里插入图片描述

2)书写保存后存储过程

-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE pro_massifareasave
	@voucherno VARCHAR(100)--:单据类型
,@keyid  VARCHAR(100)--:单据ID
,@state  VARCHAR(100)--:状态[add、
AS
BEGIN
	DECLARE @Error VARCHAR(1000),@Error1 VARCHAR(1000)
	--select   areacode FROM  bs_massifarea_det  GROUP BY  areacode HAVING COUNT(areacode)>1
	
	 SELECT @Error =STUFF((select areacode +  N',' from bs_massifarea_det GROUP BY  areacode HAVING COUNT(areacode)>1 for xml path('')),1,0,N'')
      
	 SELECT @Error1 =STUFF((select areaname +  N',' from bs_massifarea_det GROUP BY  areaname HAVING COUNT(areaname)>1 for xml path('')),1,0,N'')

	 IF @Error IS NULL  SET @Error=''

	 IF @error <>''
	 BEGIN
		SET @Error='区域编码'+ @Error+'添加重复,请检查!'
		 RAISERROR(@Error,11,1)
		 return
	 END
     

	  IF @error1 <>''
	 BEGIN
		SET @Error1='区域名称'+ @Error1+'添加重复,请检查!'
		 RAISERROR(@Error1,11,1)
		 return
	 end


end
GO

解释

<1>STUFF

STUFF

参数(character_expression,start,length,character_expression )

将第一个参数从start开始删除,删除长度为length,然后把第四个参数放到start的位置

<2> N
 SELECT @Error =STUFF((select areacode +  N',' from bs_massifarea_det GROUP BY  areacode HAVING COUNT(areacode)>1 for xml path('')),1,0,N'')

在这里插入图片描述

四、平台设置存储过程

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值