我正在学习使用 Sequelize 来使用 PostgreSQL 数据库。以下所有事情都发生在开发人员身上。环境。当手动尝试将数据插入到我的表中以检查是否通过 Sequelize 正确设置、检查失败的单元测试等时,会发生这种情况。
我用 Sequelize 模型制作了两个表:用户和发布。这两个表都生成 UUIDv4。我已经关联了用户hasMany出版物和出版物belongsTo用户(您可以参考额外信息)。
在我的psqlshell 上,我已将以下记录插入到我的 User 表中(为简洁起见,删除了其余数据):
| id | firstName | lastName | ..|
|----------------------------------------|------------|-----------|---|
| 8c878e6f-ee13-4a37-a208-7510c2638944 | Aiz | .... |...|
Run Code Online (Sandbox Code Playgroud)
现在,我尝试在引用上面新创建的用户时将记录插入到我的发布表中。这是我在 shell 中输入的内容:
INSERT INTO "Publications"("title", "fileLocation", ..., "userId")VALUES('How to Pasta', 'www.pasta.com', ..., 8c878e6f-ee13-4a37-a208-7510c2638944);
Run Code Online (Sandbox Code Playgroud)
它失败了,我收到以下错误:
ERROR: syntax error at or near "c878e6f"
LINE 1: ...8c878e6f-ee...
Run Code Online (Sandbox Code Playgroud)
(它指向第 1 行引用中终端上的第二个字符 - 'c')。
这是怎么回事?如果我们想在 psql 中手动输入 UUID,我们是否应该以另一种方式输入 UUID?我们是否将引用的 UUID 粘贴为字符串?我自己的研究中是否缺少正确的方法?
从我的模型来看:
Publication.associate = function(models) { …Run Code Online (Sandbox Code Playgroud)