node.js - Postgres SequelizeDatabaseError : syntax error at or near RETURNING

标签 node.js postgresql sequelize.js amazon-redshift

出于某种原因,Sequelize 驱动程序将: RETURNING * 添加到 select 语句的末尾。有谁知道为什么?

目的:

Lol.create({
                    id: record.dynamodb.NewImage.id.S,
                    userId: record.dynamodb.NewImage.userId.S,
                    summonerId: record.dynamodb.NewImage.summonerId.N,
                    name: record.dynamodb.NewImage.name.S,
                    profileIconId: record.dynamodb.NewImage.profileIconId.N,
                    summonerLevel: record.dynamodb.NewImage.summonerLevel.N,
                    revisionDate: record.dynamodb.NewImage.revisionDate.N,
                    createdAt: record.dynamodb.NewImage.createdAt.S,
                    updatedAt: record.dynamodb.NewImage.updatedAt.S
                }).then(function (user) {
                    console.log(user);
                }).catch(function (err) {
                    console.log(err);
                });

错误:
name: 'SequelizeDatabaseError',
  message: 'syntax error at or near "RETURNING"',
  parent: 
   { [error: syntax error at or near "RETURNING"]
     name: 'error',
     length: 136,
     severity: 'ERROR',
     code: '42601',
     detail: undefined,
     hint: undefined,
     position: '330',
     internalPosition: undefined,
     internalQuery: undefined,
     where: undefined,
     schema: undefined,
     table: undefined,
     column: undefined,
     dataType: undefined,
     constraint: undefined,
     file: '/home/ec2-user/padb/src/pg/src/backend/parser/parser_scan.l',
     line: '699',
     routine: 'yyerror',
     sql: 'INSERT INTO "Lol" ("id","userId","summonerId","name","profileIconId","summonerLevel","revisionDate","createdAt","updatedAt") VALUES (\'463d118c-2139-4679-8cdb-d07249bd2498\',\'a845a2ca-14c9-46de-93c6-d3dd1bd1a8a0\',\'2122373\',\'mariaraujo\',\'716\',\'30\',\'14804545500\',\'2017-01-09 18:50:15.282 +00:00\',\'2017-02-08 00:53:44.853 +00:00\') RETURNING *;' }

最佳答案

我可以让它工作,设置返回false:

Lol.create({
                    id: record.dynamodb.NewImage.id.S,
                    userId: record.dynamodb.NewImage.userId.S,
                    summonerId: record.dynamodb.NewImage.summonerId.N,
                    name: record.dynamodb.NewImage.name.S,
                    profileIconId: record.dynamodb.NewImage.profileIconId.N,
                    summonerLevel: record.dynamodb.NewImage.summonerLevel.N,
                    revisionDate: record.dynamodb.NewImage.revisionDate.N,
                    createdAt: record.dynamodb.NewImage.createdAt.S,
                    updatedAt: record.dynamodb.NewImage.updatedAt.S
                }, {returning: false}).then(function (user) {
                    console.log(user);
                }).catch(function (err) {
                    console.log(err);
                });

关于node.js - Postgres SequelizeDatabaseError : syntax error at or near RETURNING,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42103966/

相关文章:

javascript - 为什么 Sequelize 发布 "SHOW INDEX FROM ` 表`"?

node.js - 从数据存储区返回实体键

sql - 如何通过sql查询解决复杂的group?

php - Nodejs 过滤输入

postgresql - 来自 aws-rds 实例的 postgres 数据库转储

postgresql - 理解 Haskell postgresql 连接函数类型错误

mysql - 如何修复 Sequelize 嵌套包含不使用限制/顺序/属性?

node.js - Socket.emit 不发送或 socket.on 不接收?

javascript - Selenium 使用 javascript 获取元素的类属性

node.js - 使用 ExpressJS 获取参数