【发布时间】:2019-04-23 22:09:46
【问题描述】:
我正在使用 Entity Framework Core,并且我想使用存储过程。我创建了一个自定义 SQL 以在迁移时创建它。
生成脚本如下:
DROP PROCEDURE IF EXISTS MigrationsScript;
DELIMITER //
CREATE PROCEDURE MigrationsScript()
BEGIN
IF NOT EXISTS(SELECT 1 FROM `__EFMigrationsHistory` WHERE `MigrationId` = '20190411134055_AddGenerations_sp') THEN
DROP PROCEDURE IF EXISTS GetCurrentGeneration;
CREATE PROCEDURE GetCurrentGeneration(IN timeOut INT, IN createBy char(255))
BEGIN
-- Stored procedure body
END
END IF;
END //
DELIMITER ;
CALL MigrationsScript();
DROP PROCEDURE MigrationsScript;
DROP PROCEDURE IF EXISTS MigrationsScript;
DELIMITER //
CREATE PROCEDURE MigrationsScript()
BEGIN
IF NOT EXISTS(SELECT 1 FROM `__EFMigrationsHistory` WHERE `MigrationId` = '20190411134055_AddGenerations_sp') THEN
INSERT INTO `__EFMigrationsHistory` (`MigrationId`, `ProductVersion`)
VALUES ('20190411134055_AddGenerations_sp', '2.2.4-servicing-10062');
END IF;
END //
DELIMITER ;
CALL MigrationsScript();
DROP PROCEDURE MigrationsScript;
但是我收到了这个错误
错误代码:1357。无法从另一个存储的例程中删除或更改 PROCEDURE
【问题讨论】:
-
错误信息似乎很清楚。你有什么问题?
-
如何在其他存储过程中创建存储过程。