У меня есть хранимая процедура с подготовленным оператором, и я хотел бы знать, как использовать результат этого оператора в предложении «если не существует».
Пример процедуры показан ниже.
DROP PROCEDURE IF EXISTS PSCheck;
DELIMITER ;;
CREATE PROCEDURE PSCheck(IN TableName tinytext, IN ColumnName tinytext)
begin
SET @sc=CONCAT("show columns from ",TableName," like '",ColumnName,"'");
PREPARE stmt FROM @sc;
EXECUTE stmt;
IF NOT EXISTS (
SELECT @sc
)
THEN
SELECT 'OK';
END IF;
DEALLOCATE PREPARE stmt;
end;
;;
DELIMITER ;
CALL PSCheck('tbl', 'col');
Блок THEN никогда не выполняется независимо от наличия поля.