1
我已经使用Postgres/Npgsql设置了Sql复制。RavenDB Sql复制和Postgres uuid
我们在Ravendb中使用Guids来标识id。 只要我在Postgres中的id列是varchar
类型,但是如果我将它设置为uuid
(它应该是匹配Guid
的正确类型),那么一切工作都正常,但它失败。
对于除id之外的其他列也会失败。
Postgres的日志给我:
操作符不存在:UUID =人品34 提示文字:没有运营商的指定名称和参数类型相匹配。您可能需要添加显式类型转换。
Postgres的模式是这样的:
CREATE TABLE public.materiels
(
id uuid NOT NULL,
type character varying(50),
nummer integer,
...
CONSTRAINT materiels_pkey PRIMARY KEY (id)
)
更换第一线与
id character varying(50) NOT NULL
将使它发挥作用。
我复制设置是这样的:
如果我设置复制为使用MSSQL它的工作原理采用MSSQL的uniqueidentifier
数据类型。
哇那是一个很好的解决方案:通过这个问题,自己的笔者建议替代的解决方案。奇迹般有效。继续惊叹Postgres是多么强大! –
有没有一种方法可以将文本转换为uuid? 此解决方案修复了复制的“DELETE ... WHERE”部分。现在INSERT部分失败。 –
发现CREATE CAST,这似乎能够做到这一点。不能让它工作。 稍后再看更多 –