Node js не вставляет первичный ключ в таблицу mysql - PullRequest
0 голосов
/ 29 января 2020

Как вставить первичный ключ в таблицу node js? Первичный ключ - AUTO_INCREMENT, и, как я знаю, я не должен ничего передавать из node js в БД для ID.

Вот моя таблица:

`CREATE TABLE `table` (`ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `post_ID` bigint(20) unsigned NOT NULL DEFAULT 0, `author` tinytext NOT NULL)`

А вот моя часть кода для MySQL вставка

dbConnection.query('INSERT INTO table (post_ID, author) VALUES (?,?);', [post_ID, author],
      (err, results) => {
      if (err) {
        return reject(err);
      };
        return resolve(results.insertId);
    });

И все же в моем новом ряду я получил "ноль" для идентификатора

Ответы [ 2 ]

0 голосов
/ 29 января 2020
CREATE TABLE `table` (`ID` bigint(20) unsigned NOT NULL AUTO_INCREMENT, `post_ID` bigint(20) unsigned NOT NULL DEFAULT 0, `author` tinytext NOT NULL,PRIMARY KEY 
 (`ID`))
0 голосов
/ 29 января 2020

Полагаю, PRIMARY KEY отсутствует при создании таблицы.

Кроме того, я бы предложил использовать другое имя вместо table, которое в настоящее время присутствует в запросе на создание таблицы.

CREATE TABLE tableName (id bigint(20) UNSIGNED AUTO_INCREMENT PRIMARY KEY, post_id bigint(20) NOT NULL DEFAULT 0, author tinytext NOT NULL);

С помощью приведенной выше таблицы я могу получить идентификатор автоинкремента Для этого я использовал приведенный ниже фрагмент.

connection.execute(
    'INSERT INTO tableName (post_id, author) VALUES (?,?);',
    [1212, "Third Author"],
    function(err, results, fields) {
      console.log(results); // results contains rows returned by server
      res.send("Inserted Successfully")
    }
);

Проверьте вывод ниже:

Output

...