Неверный синтаксис для запроса вставки

1

Я использую JavaScript и PostgreSQL, и мне интересно, правильно ли написан код и синтаксис, потому что я получаю странные ошибки в разных ситуациях.

Пример:

function putDbEvents({ description, creatorId, attendeeId }) {
  return pool
    .query('INSERT INTO events (${description}, ${creatorId}), ${attendeeId}')
    .then(() => pool.end())
    .catch(console.log);
}

Мои вопросы:

  1. должно ли оно быть {} в первой строке функции? Думаю только()?
  2. если это будет похоже на вставку или, возможно, такие INSERT INTO events ('description', creatorId, attendeeId) VALUES then (${}...

Это код таблицы создания:

const createEventsRes = await pool.query(
  "CREATE TABLE IF NOT EXISTS events (id serial PRIMARY KEY, description TEXT, creatorId INTEGER, attendeeId INTEGER)"
);

Я хочу создать таблицу, поэтому каждый раз, когда вы добавляете что-то, она должна автоматически добавлять к ней идентификатор, и вы просто передаете описание, id, id, а четвертый - необязательный, поэтому не нужен в этом случае, и хотите, чтобы синтаксис правильно.

Теги:
database
syntax

2 ответа

1

Вам нужно указать столбцы при вставке:

INSERT INTO events (description, creatorid, attendeeid) 
  values (${description}, ${creatorId}), ${attendeeId})

Это хорошая практика. И это также необходимо, когда вы опускаете столбцы (в этом случае id).

  • 0
    Должно ли это быть с `также? `вот так: и должно ли оно быть также {} внутри ()? функция putDbEvents ({description, creatorId, attendeeId}) {возвращать пул .query ( INSERT INTO events (description, creatorid, attendeeid) values (${description}, ${creatorId} ${attendeeId} ) .then (() => pool.end ()) .catch (console.log);}
0

Nvm, я решил это.

функция putDbEvents (описание, creatorid, attendeeid) {return pool.query (значения INSERT INTO events (description, creatorid, attendeeid) values ($1, $2, $3) описание, creatorid, attendeeid). then (() => pool.end()).catch(console.log); } }

Ещё вопросы

Сообщество Overcoder
Наверх
Меню