gpt4 book ai didi

mysql有条件插入

转载 作者:行者123 更新时间:2023-11-29 00:37:36 27 4
gpt4 key购买 nike

我有一个 mysql 数据库和一个向其中插入内容的表单。如果有一行的 Status 列等于“New”或“Redeploy”并且是相同的 $tag(这是他们进入的区域表格)

基本上,如果 $tag 已经存在且状态为“new”或“redeploy”,我想阻止人们添加条目。有点难以解释

这是我当前的查询,如有任何帮助或想法,我们将不胜感激。

mysql_query ("INSERT INTO Assets (`Badge`, `First Name`, `Last Name`, `Service Tag`, `Asset Tag`, `Status`, `Employee Status`, `Username`, `deleted`)
VALUES('$badge', '$first', '$last', '$tag', '$asset', '$status', '$estatus', '$user', '$deleted') ") or die (mysql_error());

最佳答案

最好的方法是在表上使用检查约束。这样,无论插入/更新是如何进行的,您的条件将始终得到执行。

http://www.w3schools.com/sql/sql_check.asp

对于这样的事情,您可能还想创建一个函数。所以你的函数看起来像:

CREATE FUNCTION CheckAssetRows(@Tag VARCHAR(50))
RETURNS INT
AS
BEGIN
DECLARE @NumInvalidRows INT

SELECT @NumInvalidRows = COUNT(*)
FROM Asset
WHERE [Service Tag]=@Tag
AND [Status] in ('New', 'Redeploy')

RETURN @NumInvalidRows
END
GO

而且您的检查很简单:

ALTER TABLE ASSET
ADD CONSTRAINT chk_Tag CHECK(CheckAssetRows([Service Tag]) = 0)

关于mysql有条件插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13635255/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com