如何在 diesel model.rs 中用空格写列名?
How to write column names with whitespace in diesel model.rs?
我正在尝试使用 Diesel
来管理我的数据库以与 Rocket
一起使用,但我在为我的 table 编写 models.rs 时卡住了:
CREATE TABLE `problemSet` (
`id` varchar(10) NOT NULL,
`contestId` int DEFAULT NULL,
`difficulty` varchar(10) DEFAULT NULL,
`title` varchar(300) DEFAULT NULL,
`rating` int DEFAULT NULL,
`link` varchar(300) DEFAULT NULL,
`binary search` tinyint(1) DEFAULT '0',
`chinese remainder theorem` tinyint(1) DEFAULT '0',
`constructive algorithms` tinyint(1) DEFAULT '0',
`data structures` tinyint(1) DEFAULT '0',
`dfs and similar` tinyint(1) DEFAULT '0',
`divide and conquer` tinyint(1) DEFAULT '0',
PRIMARY KEY(`id`)
);
在这里,我很困惑如何在 models.rs 的结构中为 column_names 编写带有空格的标识符。
我指的是 Diesel 和 RUST 的官方指南。
在定义架构时,您可以使用 sql_name
属性为列指定一个名称,该名称与将出现在 Rust 代码中的名称不同:
diesel::table! {
problemSet {
...
#[sql_name = "divide and conquer"]
divide_and_conquer -> Text,
...
}
}
参见:documentation for the table! macro
话虽如此,我还是希望在列名中远离空格。
我正在尝试使用 Diesel
来管理我的数据库以与 Rocket
一起使用,但我在为我的 table 编写 models.rs 时卡住了:
CREATE TABLE `problemSet` (
`id` varchar(10) NOT NULL,
`contestId` int DEFAULT NULL,
`difficulty` varchar(10) DEFAULT NULL,
`title` varchar(300) DEFAULT NULL,
`rating` int DEFAULT NULL,
`link` varchar(300) DEFAULT NULL,
`binary search` tinyint(1) DEFAULT '0',
`chinese remainder theorem` tinyint(1) DEFAULT '0',
`constructive algorithms` tinyint(1) DEFAULT '0',
`data structures` tinyint(1) DEFAULT '0',
`dfs and similar` tinyint(1) DEFAULT '0',
`divide and conquer` tinyint(1) DEFAULT '0',
PRIMARY KEY(`id`)
);
在这里,我很困惑如何在 models.rs 的结构中为 column_names 编写带有空格的标识符。
我指的是 Diesel 和 RUST 的官方指南。
在定义架构时,您可以使用 sql_name
属性为列指定一个名称,该名称与将出现在 Rust 代码中的名称不同:
diesel::table! {
problemSet {
...
#[sql_name = "divide and conquer"]
divide_and_conquer -> Text,
...
}
}
参见:documentation for the table! macro
话虽如此,我还是希望在列名中远离空格。