调用存储过程中的sequalize参数传入
我试图调用一个存储过程传递参数如下所示。 但是,我知道我的语法是closures的,我没有看到任何例子,无论是在文档或unit testing。
model.sequelize.query('CALL truncate_tables(\'appuser\');') .then(function (response) { done(); }).error(function (err) { done(err); });
build议?
我开始看这个链接。 在Sequelize.js中调用存储过程
附加信息:
这是我看到的错误
Unhandled rejection SequelizeDatabaseError: syntax error at or near "CALL"
这里是sp
CREATE OR REPLACE FUNCTION truncate_tables(username character varying) RETURNS void AS $BODY$ DECLARE statements CURSOR FOR SELECT tablename FROM pg_tables WHERE tableowner = username AND schemaname = 'public'; BEGIN FOR stmt IN statements LOOP EXECUTE 'TRUNCATE TABLE ' || quote_ident(stmt.tablename) || ' CASCADE;'; END LOOP; END; $BODY$
我想你正在使用PostgreSQL。
PostgreSQL调用过程的语法与MySQL或IBM Informix等其他DBMS不同。 它不会CALL
该过程,而是从存储过程中select。 可以在https://www.postgresql.org/message-id/41F009EA.6050401%40us.michelin.comfind一个参考。
也许这个代码会这样工作:
model.sequelize.query('SELECT truncate_tables(\'appuser\');') .then(function (response) { done(); }).error(function (err) { done(err); });