Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如果不存在记录检查_Mysql_Sql - Fatal编程技术网

Mysql 如果不存在记录检查

Mysql 如果不存在记录检查,mysql,sql,Mysql,Sql,我正在尝试这样做,如果我的数据库没有记录,然后插入它,下面的查询是我的检查,代码没有错误,所以我不确定我是否真的进行了检查 记录1 IF NOT EXISTS ( SELECT 1 FROM TBL_AUDIT_LOG_TYPE WHERE AUDIT_LOG_TYPE_ID = 1 ) INSERT INTO TBL_AUDIT_LOG_TYPE ([AUDIT_LOG_TYPE_ID],[MODULE],[ACTION]) VALUES (1,'User','UserInfo') 记录2

我正在尝试这样做,如果我的数据库没有记录,然后插入它,下面的查询是我的检查,代码没有错误,所以我不确定我是否真的进行了检查

记录1

IF NOT EXISTS ( SELECT 1 FROM TBL_AUDIT_LOG_TYPE WHERE AUDIT_LOG_TYPE_ID = 1 )
INSERT INTO TBL_AUDIT_LOG_TYPE ([AUDIT_LOG_TYPE_ID],[MODULE],[ACTION]) 
VALUES (1,'User','UserInfo')
记录2

IF NOT EXISTS ( SELECT 1 FROM TBL_AUDIT_LOG_TYPE WHERE AUDIT_LOG_TYPE_ID = 2 )
INSERT INTO TBL_AUDIT_LOG_TYPE ([AUDIT_LOG_TYPE_ID],[MODULE],[ACTION]) 
VALUES (2,'User2','UserInfo2')

如果您只想获得某种类型的返回值,请使用函数或存储过程并返回一个值。例如:

IF EXISTS ( SELECT 1 FROM TBL_AUDIT_LOG_TYPE WHERE AUDIT_LOG_TYPE_ID = 1 )
   Return -1
Else
   INSERT INTO TBL_AUDIT_LOG_TYPE ([AUDIT_LOG_TYPE_ID],[MODULE],[ACTION]) 
   VALUES (1,'User','UserInfo')

IF EXISTS ( SELECT 1 FROM TBL_AUDIT_LOG_TYPE WHERE AUDIT_LOG_TYPE_ID = 2 )
   Return -2
Else
   INSERT INTO TBL_AUDIT_LOG_TYPE ([AUDIT_LOG_TYPE_ID],[MODULE],[ACTION]) 
   VALUES (2,'User2','UserInfo2')
如果仅使用特殊查询或SSMS中的查询窗口,请在其上方创建一个变量,或仅打印消息。如果在编码sql查询中使用变量,则可以返回返回值

Declare @ErrorValues int;
Select @ErrorValues = 0;

IF EXISTS ( SELECT 1 FROM TBL_AUDIT_LOG_TYPE WHERE AUDIT_LOG_TYPE_ID = 1 )
 BEGIN
   Select @ErrorValues = @ErrorValues - 1;
   PRINT '-1';
Else
   INSERT INTO TBL_AUDIT_LOG_TYPE ([AUDIT_LOG_TYPE_ID],[MODULE],[ACTION]) 
   VALUES (1,'User','UserInfo')

IF EXISTS ( SELECT 1 FROM TBL_AUDIT_LOG_TYPE WHERE AUDIT_LOG_TYPE_ID = 2 )
 BEGIN
   Select @ErrorValues = @ErrorValues - 2;
   Print '-2'; --or PRINT 'audit_log_type_ID of 2 already exists';
 END
Else
   INSERT INTO TBL_AUDIT_LOG_TYPE ([AUDIT_LOG_TYPE_ID],[MODULE],[ACTION]) 
   VALUES (2,'User2','UserInfo2')

我觉得你的问题很好。你的问题是什么?这是MS SQL Server,而不是标记为MySQL的,不是吗?(如
[]
列附件所示)此检查是否足够好?因为它没有错误返回给我,所以我不确定代码是否正确not@GordonLinoff:“查询对我来说很好”——
INSERT
不能用
作为前缀,如果不存在
您就不能运行INSERT吗?如果记录存在,并且您正确使用了PK和(可能)UK,那么如果它不存在,它将插入。如果它确实存在,则不会出现,因为您违反了约束。