我有给定查询的生成代码
INSERT INTO "users" (
username,
name,
surname,
email,
hashed_password,
role
) VALUES (
$1, $2, $3, $4, $5, $6
) RETURNING "id", "username";
Run Code Online (Sandbox Code Playgroud)
看起来像这样
type CreateUserParams struct {
Username string `json:"username"`
Name pgtype.Text `json:"name"`
Surname pgtype.Text `json:"surname"`
Email string `json:"email"`
HashedPassword string `json:"hashed_password"`
Role UserRole `json:"role"`
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能变成Name pgtype.Textgolang字符串?目前我的sqlc.yaml文件如下所示
INSERT INTO "users" (
username,
name,
surname,
email,
hashed_password,
role
) VALUES (
$1, $2, $3, $4, $5, $6
) RETURNING "id", "username";
Run Code Online (Sandbox Code Playgroud)
我的架构如下所示
type CreateUserParams struct {
Username string `json:"username"`
Name pgtype.Text `json:"name"`
Surname pgtype.Text `json:"surname"`
Email string `json:"email"`
HashedPassword string `json:"hashed_password"`
Role UserRole `json:"role"`
}
Run Code Online (Sandbox Code Playgroud)
这里name和surname可以NULL基于模式。现在正如 @kozmo 指出的那样,因为这些列可以为空,所以它正在生成pgtype.Text而不是string. 但我想在每个场景中创建字符串。我怎样才能做到这一点?
我猜,你的“用户”模式文件看起来像
create table users
(
id uuid,
username text,
name text,
);
Run Code Online (Sandbox Code Playgroud)
Asqlc generate
type User struct {
ID pgtype.UUID `json:"id"`
Username pgtype.Text `json:"username"`
Name pgtype.Text `json:"name"`
}
Run Code Online (Sandbox Code Playgroud)
如果添加约束not null
create table users
(
id uuid,
username text,
name text not null ---
);
Run Code Online (Sandbox Code Playgroud)
生成的代码看起来像
type User struct {
ID pgtype.UUID `json:"id"`
Username pgtype.Text `json:"username"`
Name string `json:"name"`
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1229 次 |
| 最近记录: |