Почему обратные галочки используются в 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
столбец должен быть просто ошибка копирования / вставки.)