即使通过存储库“已经存在”也找不到它

时间:2020-08-01 23:32:47

标签: mysql ubuntu stored-procedures

mysql新手。尝试创建在本教程中看到的存储过程:http://www.microshell.com/database/mysql/emulating-nextval-function-to-get-sequence-in-mysql/

为了加载程序,我运行了:

mysql -u root -pmypassword test_db < path/to/sproc/sequence_next_val.sql

似乎很有效,因为我以后每次运行它,都会得到:

ERROR 1304 (42000) at line 3: FUNCTION nextval already exists

但是,当我转到mysql命令行并执行以下操作时:

$ USE test_db
$ CALL nextval('sequence_name');

我得到:

ERROR 1305 (42000): PROCEDURE test_db.nextval does not exist

mysql版本信息:适用于Linux on x86_64((Ubuntu))的mysql Ver 8.0.20-0ubuntu0.20.04.1

1 个答案:

答案 0 :(得分:1)

您已经创建了一个函数,要使用它,您需要SELECT nextval()。如果创建过程,则可以使用CALL

请参阅:https://dev.mysql.com/doc/refman/8.0/en/create-procedure.html

在您的链接练习中,它可以正确执行此操作:

SELECT nextval('sq_my_sequence') as next_sequence;