我正在做顶石(不可审查)的codeacademy亲密集项目。
本课提供了一个示例。
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等?
你能帮帮忙吗,我还在学习。
发布于 2018-03-19 06:58:53
SQL标准和SQLite对带引号的标识符使用双引号。仅为了与MySQL兼容,SQLite才支持反引号。
您说得对,这些标识符都不需要加引号。
(我假设Artist.id列所在的垃圾只是一个复制/粘贴错误。)
https://stackoverflow.com/questions/49347161
复制相似问题