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
答案 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;