mysql - MySQL Workbench 中的正向工程数据库 - 错误 1304 : FUNCTION GET_NEXT_SEQ already exists

标签 mysql sql mysql-workbench

我是 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/

相关文章:

php - 以下 MySql 存储过程是否容易受到 SQL 注入(inject)攻击?

sql - SQL:给定日期可用的最大日期

mysql - 创建子查询时遇到问题

mysql - 如何自动递增唯一值

mysql - 请协助我找出我在此 MySQL 代码中的错误

mysql - 使用 AND OR 运算符的 SQL 查询

具有相等数量范围的PHP MySQL搜索表单

mysql - super /父 SQL 表上的索引

php - 根据数组值使用Where子句查询数据库

mysql - SQL WordPress 自定义查询内部连接