gpt4 book ai didi

sql - 如何从 PostgreSQL 中的另一个表插入对 UUID 的引用?

转载 作者:行者123 更新时间:2023-12-03 22:18:41 28 4
gpt4 key购买 nike

我正在学习使用 Sequelize 与 PostgreSQL 数据库一起使用。以下所有内容都发生在开发人员身上。环境。这是在手动尝试将数据插入我的表以检查是否通过 Sequelize 正确设置、检查失败的单元测试等时发生的。

我用 Sequelize 模型制作了两个表:用户和发布。这两个表都在生成 UUIDv4。我已关联用户 hasMany出版物和出版物 belongsTo用户(您可以引用额外信息)。

在我的 psql shell,我已将以下记录插入到我的用户表中(为简洁起见,其余数据已删除):

|                   id                   |  firstName | lastName  | ..| 
|----------------------------------------|------------|-----------|---|
| 8c878e6f-ee13-4a37-a208-7510c2638944 | Aiz | .... |...|

现在我正在尝试在引用上面新创建的用户时将记录插入到我的发布表中。这是我在shell中输入的内容:
INSERT INTO "Publications"("title", "fileLocation", ..., "userId")VALUES('How to Pasta', 'www.pasta.com', ..., 8c878e6f-ee13-4a37-a208-7510c2638944);

它失败了,我收到以下错误:
ERROR:  syntax error at or near "c878e6f"
LINE 1: ...8c878e6f-ee...

(它指向第 1 行引用中终端上的第二个字符 - 'c')。

这里有什么问题?如果我们想在 psql 中手动输入 UUID,我们是否应该以另一种方式输入 UUID?我们是否将引用的 UUID 粘贴为字符串?我自己的研究中是否缺少正确的方法?

如果有帮助,请提供一些额外的信息:

从我的模型:
Publication.associate = function(models) {
// associations can be defined here
Publication.belongsTo(models.User, {
foreignKey: "userId"
});
};


User.associate = function(models) {
// associations can be defined here
User.hasMany(models.Publication, {
foreignKey: "userId",
as: "publications"
});
};

这是我定义的方式 userId在出版物中:
userId: {
type: DataTypes.UUID,
references: {
model: "User",
key: "id",
as: "userId"
}
}

如果它值得,我的 (primaryKey) id两种型号都是 type: DataTypes.UUID, defaultValue: DataTypes.UUIDV4 (我不知道这是不是一个问题)。

最佳答案

用撇号包围您的 uuid(将其写为字符串),pg 会将其转换为 uuid

用 {} 开始和结束您的字符串是可选的

例如

INSERT INTO "Publications"("title", "fileLocation", ..., "userId")VALUES('How to Pasta', 'www.pasta.com', ..., '8c878e6f-ee13-4a37-a208-7510c2638944');

或者
INSERT INTO "Publications"("title", "fileLocation", ..., "userId")VALUES('How to Pasta', 'www.pasta.com', ..., '{8c878e6f-ee13-4a37-a208-7510c2638944}');

来源(我不太会做 pgsql,所以我找了另一个写了一些工作 pgsql 的人。如果这对你不起作用,请告诉我,我会删除答案): PostgreSQL 9.3: How to insert upper case UUID into table

关于sql - 如何从 PostgreSQL 中的另一个表插入对 UUID 的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52070119/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com