如何在MySql中使用sequelize运行多个原始查询?

雷纳托·伽玛(Renato Gama)

我试图运行一个脚本,以在通过sequelize同步之前从数据库中删除所有表 sequelize.sync({ force: true });

当我从控制台运行该脚本时,它没有任何问题,当我尝试从自己的node.js应用程序运行该脚本时,便会出现问题。MySql返回一个解析错误。

node.js

var dropAllTables = [
    'SET FOREIGN_KEY_CHECKS = 0;',
    'SET GROUP_CONCAT_MAX_LEN = 32768;',
    'SET @tables = NULL;',
    "SELECT GROUP_CONCAT('`', table_name, '`') INTO @tables FROM information_schema.tables WHERE table_schema = (SELECT DATABASE());",
    "SET @tables = CONCAT('DROP TABLE IF EXISTS ', @tables);",
    "SELECT IFNULL(@tables, 'SELECT 1') INTO @tables;",
    'PREPARE stmt FROM @tables;',
    'EXECUTE stmt;',
    'DEALLOCATE PREPARE stmt;',
    'SET FOREIGN_KEY_CHECKS = 1;',
    "SET GLOBAL sql_mode = 'STRICT_ALL_TABLES';"
].join(' ');

sequelize.query(dropAllTables, {
    raw: true
}).then(function() {
    return sequelize.sync({ force: true });
}).then(function() {
    console.log('Database recreated!');
    callback();
}, function(err) {
    throw err;
});

错误

{ [Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'SET GROUP_CONCAT_MAX_LEN = 32768; SET @tables = NULL; SELECT GROUP_CONCAT('`', t' at line 1] code: 'ER_PARSE_ERROR', errno: 1064, sqlState: '42000', index: 0, sql: 'SET FOREIGN_KEY_CHECKS = 0; SET GROUP_CONCAT_MAX_LEN = 32768; SET @tables = NULL; SELECT GROUP_CONCAT(\'`\', table_name, \'`\') INTO @tables FROM information_schema.tables WHERE table_schema = (SELECT DATABASE()); SET @tables = CONCAT(\'DROP TABLE IF EXISTS \', @tables); SELECT IFNULL(@tables, \'SELECT 1\') INTO @tables; PREPARE stmt FROM @tables; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET FOREIGN_KEY_CHECKS = 1; SET GLOBAL sql_mode = \'STRICT_ALL_TABLES\';' }

我在Google或sequelize docs页面中都找不到关于带有sequelize的多个原始查询的任何信息(我在寻找该query方法的特定参数)。

编辑:

从SO克隆中找到了这个线程,那里的人们似乎也遇到了同样的问题,但我不知道解决方案是什么。

扬·阿加德·迈耶(Jan Aagaard Meier)

您可以multipleStatements使用

new Sequelize(user, pass, db, {
  dialectOptions: {
    multipleStatements: true
  }
});

您放入的任何内容dialectOptions都将传递到基础连接库(在本例中为mysql

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在NestJS中使用原始SQL代替TypeOrm或Sequelize?

来自分类Dev

如何在Sequelize.js中使用架构查询表?

来自分类Dev

如何在Sequelize.js中使用架构查询表?

来自分类Dev

如何在MySQL中使用子查询为报表优化多个联接的查询

来自分类Dev

使用Sequelize作为ORM在Sails App中使用原始查询

来自分类Dev

如何在pyodbc中使用executemany来运行多个SELECT查询

来自分类Dev

如何在MySQL查询中使用Regexp?

来自分类Dev

如何在 MySQL 查询中使用 INCLUDE?

来自分类Dev

如何在MYSQL中使用1个查询更新多个表

来自分类Dev

如何在mysql中使用一个SQL查询选择多个静态行

来自分类Dev

如何在一个 http 请求中使用节点呈现多个 mysql 查询

来自分类Dev

如何在mysql中运行具有多个条件的查询?

来自分类Dev

sequelize:如何记录原始查询

来自分类Dev

我们如何使用 Sequelize 执行以下原始查询?

来自分类Dev

如何在JPA中使用多个属性进行条件查询?

来自分类Dev

如何在ActiveRecord查询中使用多个.joins

来自分类Dev

如何在解析中使用多个等于查询

来自分类Dev

如何在AR中使用多个联接进行查询

来自分类Dev

如何在Node-postgres中使用多个查询?

来自分类Dev

如何在Firebase Android中使用多个WhereIn查询?

来自分类Dev

如何在Codeigniter中使用多个选择查询?

来自分类Dev

如何在SQL查询中使用多个参数

来自分类Dev

如何在Pentaho Report Designer中使用多个查询?

来自分类Dev

如何在查询中使用LIKE查找多个单词?

来自分类Dev

如何在子查询中使用多个 sum 和 group by?

来自分类Dev

Elasticsearch - 如何在查询中使用多个分析器

来自分类Dev

如何在 Css 类中使用多个媒体查询?

来自分类Dev

如何使用PROCEDURE在MySQL上运行多个查询?

来自分类Dev

如何在QMake中使用额外的目标运行多个命令

Related 相关文章

  1. 1

    如何在NestJS中使用原始SQL代替TypeOrm或Sequelize?

  2. 2

    如何在Sequelize.js中使用架构查询表?

  3. 3

    如何在Sequelize.js中使用架构查询表?

  4. 4

    如何在MySQL中使用子查询为报表优化多个联接的查询

  5. 5

    使用Sequelize作为ORM在Sails App中使用原始查询

  6. 6

    如何在pyodbc中使用executemany来运行多个SELECT查询

  7. 7

    如何在MySQL查询中使用Regexp?

  8. 8

    如何在 MySQL 查询中使用 INCLUDE?

  9. 9

    如何在MYSQL中使用1个查询更新多个表

  10. 10

    如何在mysql中使用一个SQL查询选择多个静态行

  11. 11

    如何在一个 http 请求中使用节点呈现多个 mysql 查询

  12. 12

    如何在mysql中运行具有多个条件的查询?

  13. 13

    sequelize:如何记录原始查询

  14. 14

    我们如何使用 Sequelize 执行以下原始查询?

  15. 15

    如何在JPA中使用多个属性进行条件查询?

  16. 16

    如何在ActiveRecord查询中使用多个.joins

  17. 17

    如何在解析中使用多个等于查询

  18. 18

    如何在AR中使用多个联接进行查询

  19. 19

    如何在Node-postgres中使用多个查询?

  20. 20

    如何在Firebase Android中使用多个WhereIn查询?

  21. 21

    如何在Codeigniter中使用多个选择查询?

  22. 22

    如何在SQL查询中使用多个参数

  23. 23

    如何在Pentaho Report Designer中使用多个查询?

  24. 24

    如何在查询中使用LIKE查找多个单词?

  25. 25

    如何在子查询中使用多个 sum 和 group by?

  26. 26

    Elasticsearch - 如何在查询中使用多个分析器

  27. 27

    如何在 Css 类中使用多个媒体查询?

  28. 28

    如何使用PROCEDURE在MySQL上运行多个查询?

  29. 29

    如何在QMake中使用额外的目标运行多个命令

热门标签

归档