在执行特定的查询集之前,如何检查mysql中的空条件?

在执行特定的查询集之前,如何检查mysql中的空条件?,mysql,if-statement,conditional-statements,ifnull,Mysql,If Statement,Conditional Statements,Ifnull,我试图在不同的5个数据库中执行下面的脚本 SET @CONSTRAINT_NAME = (SELECT CONSTRAINT_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_NAME = 'StudentMaster' AND TABLE_NAME = 'StudentSubjectMa' AND CONSTRAINT_SCHEMA = DATABASE()); 现在,我想在这里检查一下,如果@CONST

我试图在不同的5个数据库中执行下面的脚本

SET @CONSTRAINT_NAME = (SELECT CONSTRAINT_NAME
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE REFERENCED_TABLE_NAME = 'StudentMaster'
AND TABLE_NAME = 'StudentSubjectMa'
AND CONSTRAINT_SCHEMA = DATABASE());
现在,我想在这里检查一下,如果
@CONSTRAINT\u NAME
notnull
,那么只应该执行下面的语句。可能吗

    SET @DROP_CONSTRAINT_SQL = CONCAT("ALTER TABLE StudentSubjectMarksMap 
    DROP FOREIGN KEY `", @CONSTRAINT_NAME , "`");

    PREPARE DROP_CONSTRAINT_SQL_STMT FROM @DROP_CONSTRAINT_SQL;
    EXECUTE DROP_CONSTRAINT_SQL_STMT;
    DROP PREPARE DROP_CONSTRAINT_SQL_STMT;

是的,如果标准
语句:

IF @CONSTRAINT_NAME IS NOT NULL THEN 
    SET @DROP_CONSTRAINT_SQL = CONCAT("ALTER TABLE StudentSubjectMarksMap 
    DROP FOREIGN KEY `", @CONSTRAINT_NAME , "`");

    PREPARE DROP_CONSTRAINT_SQL_STMT FROM @DROP_CONSTRAINT_SQL;
    EXECUTE DROP_CONSTRAINT_SQL_STMT;
    DROP PREPARE DROP_CONSTRAINT_SQL_STMT;
END IF

有关更多详细信息,请参阅

您好@vhu,谢谢,但这只能在function()或procedures()中实现。我只想要简单的语法。我不想从外部调用函数。@vishal:您是只运行SQL脚本,还是从PHP或Bash控制它?我只想运行SQL脚本。