首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果总列数大于10,sql insert insert到数据库

问如果总列数大于10,sql insert insert到数据库
EN

Stack Overflow用户
提问于 2014-08-19 14:24:05
回答 3查看 1.4K关注 0票数 1

我使用的是SQL。我有一个带有整数列column1的表名测试。

我想将数据插入到column1中,直到记录总数达到100。如果总和大于100,则SQL查询不应插入记录。

这意味着,在执行insert语句之前,SQL查询应该检查可用数据的总和。如果数据小于100,则将插入。否则,它将不会插入。

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2014-08-19 15:26:17

您可以将以下存储过程用于insert语句:

代码语言:javascript
复制
CREATE PROCEDURE spInsertData
(
    @value INT
)
AS
BEGIN
    DECLARE @total INT
    SET @total = ISNULL((SELECT SUM([columnName]) FROM [tableName]),0)

    IF (@total + @value) <= 100
        BEGIN
            INSERT INTO [tableName] VALUES (@value)
        END
END
票数 2
EN

Stack Overflow用户

发布于 2014-08-19 16:47:25

在oracle DB中测试,应该可以在msql或任何其他数据库中工作

不过,Case语句的语法可能有所不同!但大体上都是一样的逻辑

代码语言:javascript
复制
INSERT INTO TEST (COLUMN1)
SELECT [COULMN1 VALUE HERE] FROM DUAL
/*The condition that will check if inserting allowed or not*/
WHERE 
1 = (SELECT CASE WHEN SUM(column1) + [COULMN1 VALUE HERE] >= 100 THEN 0 ELSE 1 END FROM TEST)

注意:使用此解决方案,您将不必编写任何存储过程。

票数 0
EN

Stack Overflow用户

发布于 2014-08-20 11:55:02

我正在使用存储过程在我的表中插入数据。

代码语言:javascript
复制
insert into  FundTransfer_Log values (@id,@data);

此语句是一个循环,用于检查表中的所有数据(表包含200多条记录)。首先,上面的insert语句对@data的总数求和,以检查它是否小于100。如果它返回小于100,那么它将插入具有id的所有记录,否则它将不会插入。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25376877

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档