我正在为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
等?
请你帮忙,我还在学习。
答案 0 :(得分:2)
SQL标准和SQLite对引用的标识符使用双引号。 SQLite仅支持与MySQL兼容的反引号。
您是正确的,不需要引用这些标识符。
(我认为Artist
。id
列所在的垃圾只是一个复制/粘贴错误。)