Почему обратные галочки используются в node-sqlite3, когда имена не содержат специальных символов?

Я делаю Capstone (не рецензируемый) проект для Codeacademy Pro интенсивной.

В уроке есть пример.

    db.serialize(function() {
      db.run('CREATE TABLE IF NOT EXISTS `Artist` ( ' +
              IF NOT EXISTS  NOT NULL, ' +
               '`name` TEXT NOT NULL, ' +
               '`date_of_birth` TEXT NOT NULL, ' +
               '`biography` TEXT NOT NULL, ' +
               '`is_currently_employed` INTEGER NOT NULL DEFAULT 1, ' +
               'PRIMARY KEY(`id`) )');

      db.run('CREATE TABLE IF NOT EXISTS `Series` ( ' +
               '`id` INTEGER NOT NULL, ' +
               '`name` TEXT NOT NULL, ' +
               '`description` TEXT NOT NULL, ' +
               'PRIMARY KEY(`id`) )');

      db.run('CREATE TABLE IF NOT EXISTS `Issue` ( ' +
               '`id` INTEGER NOT NULL, ' +
               '`name` TEXT NOT NULL, ' +
               '`issue_number` INTEGER NOT NULL, ' +
               '`publication_date` TEXT NOT NULL, ' +
               '`artist_id` INTEGER NOT NULL, ' +
               '`series_id` INTEGER NOT NULL, ' +
               'PRIMARY KEY(`id`), ' +
               'FOREIGN KEY(`artist_id`) REFERENCES `Artist`(`id`), ' +
               'FOREIGN KEY(`series_id`) REFERENCES `Series`(`id`) )');
    });

Я понимаю концепцию обратных ссылок es6, а обратные галочки в sqlite3 используются для альтернативных символов, таких как пробелы. Однако в этом примере я не вижу, почему обратные помехи вообще необходимы, напр. Artist, name, так далее.?

Пожалуйста, помогите, я все еще учусь.

1 ответ

Стандарт SQL и SQLite используют двойные кавычки для идентификаторов в кавычках. SQLite поддерживает обратные пометки только для совместимости с MySQL.

Вы правы, что ни один из этих идентификаторов не должен быть заключен в кавычки.

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

Другие вопросы по тегам