返回 -.returning(column) / .returning([column1, column2, ...])

返回方法由PostgreSQL,MSSQL和Oracle数据库使用,它指定insert和update方法应返回哪一列。传递的列参数可以是字符串或字符串数​​组。当传递字符串时,使SQL结果报告为指定列中值的数组。当传入字符串数组时,使SQL结果作为对象数组报告,每个对象包含每个指定列的单个属性。Amazon Redshift不支持返回方法。


// Returns [1]

knex('books')

  .returning('id')

  .insert({title: 'Slaughterhouse Five'})

输出:

insert into `books` (`title`) values ('Slaughterhouse Five')

// Returns [2] in "mysql", "sqlite"; [2, 3] in "postgresql"

knex('books')

  .returning('id')

  .insert([{title: 'Great Gatsby'}, {title: 'Fahrenheit 451'}])

输出:

insert into `books` (`title`) values ('Great Gatsby'), ('Fahrenheit 451')

// Returns [ { id: 1, title: 'Slaughterhouse Five' } ]

knex('books')

  .returning(['id','title'])

  .insert({title: 'Slaughterhouse Five'})

输出:

insert into `books` (`title`) values ('Slaughterhouse Five')