$insert_fields);
// If we're selecting from a SelectQuery, finish building the query and
// pass it back, as any remaining options are irrelevant.
if (!
empty($this->fromQuery
)) { $insert_fields_string =
$insert_fields ? ' (' .
implode(', ',
$insert_fields) . ') ' : ' ';
$query =
$comments . 'INSERT INTO {' .
$this->table . '}' .
$insert_fields_string .
$this->fromQuery;
} else { $query =
$comments . 'INSERT INTO {' .
$this->table . '} (' .
implode(', ',
$insert_fields) . ') VALUES ';
$values =
$this->
getInsertPlaceholderFragment($this->insertValues,
$this->defaultFields
);
$query .=
implode(', ',
$values);
} try { // Fetch the list of blobs and sequences used on that table.
$table_information =
$this->connection->
schema()->
queryTableInformation($this->table
);
if (isset($table_information->serial_fields
[0
])) { // Use RETURNING syntax to get the last insert ID in the same INSERT
// query, see https://www.postgresql.org/docs/12/dml-returning.html.
$query .= ' RETURNING ' .
$table_information->serial_fields
[0
];
} }