Как сбросить первичный ключ autoIncrement с помощью sequelize? - PullRequest
0 голосов
/ 03 мая 2019

Я использую sqlite3 в качестве своей БД и использую библиотеку "sequelize" для ее обработки. У меня есть модуль, и я хочу сбросить первичный ключ autoIncrement после его усечения.

    var logModule = db.logModule()
    logModule.destroy({

        where:{},
        truncate: true
    })

Но я нашел этот способ, просто очистив все записи в моей таблице, не сбросив начальный ключ autoIncrement к нулю.

Есть ли способ сбросить первичный ключ после очистки всех записей в моей таблице?

Ответы [ 2 ]

1 голос
/ 03 мая 2019

SQLite отслеживает самое большое ROWID, которое когда-либо занимал стол, используя специальную таблицу SQLITE_SEQUENCE.Таблица SQLITE_SEQUENCE создается и инициализируется автоматически всякий раз, когда создается нормальная таблица, содержащая столбец AUTOINCREMENT.

После уничтожения таблицы необходимо выполнить запрос для сброса значения SQE для таблицы.

sequelize.query("UPDATE SQLITE_SEQUENCE SET SEQ=0 WHERE NAME='log_module_table_name'");
0 голосов
/ 03 мая 2019

Используйте это;

Object.values(sequelize.models).map(function(model) {
  return model.destroy({ truncate: true });
}); 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...