在执行特定的查询集之前,如何检查mysql中的空条件?
我试图在不同的5个数据库中执行下面的脚本在执行特定的查询集之前,如何检查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
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脚本。