我是 Mysql Workbench 的新手,我正在尝试将 EER 模型转发到测试数据库,但是当我这样做时,我收到了这个错误,我不确定这意味着什么。
我很想删除函数定义,因为它已经在其他地方定义了,我想这会解决这个错误,但是因为我不知道原始定义是否与新定义相同,所以我不愿意相信这种方法。
Executing SQL script in server ERROR: Error 1304: FUNCTION GET_NEXT_SEQ already exists
SQL 代码:
CREATE DEFINER=`masteruser`@`%` FUNCTION `GET_NEXT_SEQ`(`SEQNAME` VARCHAR(50)) RETURNS varchar(50) CHARSET utf8
BEGIN
DECLARE CURVALUE INT;
UPDATE sequence_log SET CURRENT_VALUE = (CURRENT_VALUE + 1) WHERE SEQUENCE_NAME = SEQNAME;
SELECT CURRENT_VALUE INTO CURVALUE FROM sequence_log WHERE SEQUENCE_NAME = SEQNAME;
RETURN LPAD(CURVALUE,9,0);
END
我通过对同一数据库进行逆向工程获得了 EER。
最佳答案
delimiter $$
CREATE FUNCTION `GET_NEXT_SEQ_VAL`(`SEQNAME` VARCHAR(50)) RETURNS varchar(50) CHARSET utf8
BEGIN
DECLARE CURVALUE INT;
UPDATE sequence_log SET CURRENT_VALUE = (CURRENT_VALUE + 1) WHERE SEQUENCE_NAME = SEQNAME;
SELECT CURRENT_VALUE INTO CURVALUE FROM sequence_log WHERE SEQUENCE_NAME = SEQNAME;
RETURN LPAD(CURVALUE,9,0);
END
您可以简单地使用新名称创建新函数。
关于mysql - MySQL Workbench 中的正向工程数据库 - 错误 1304 : FUNCTION GET_NEXT_SEQ already exists,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45798830/