小编j.p*_*.p.的帖子

PostgreSQL的规则和nextval()/ serial问题(非常PostgreSQL特有的)

当我使用重写规则将插入一个表拆分为两个其他表的插入时,其中一个插入值具有默认的nextval('some_sequence'),两个表具有相同的序列,则插入的默认值在两张桌子.这可能是由于重写规则的简单文本替换.我曾希望首先解析默认值,然后将相同的值写入两个表.

这是一个例子(正如你可能猜到的,我正在尝试使用规则实现特化/泛化):

-- first and third commands can be skipped if id is defined as serial
create sequence parents_id_seq;
create table Parents(
  id integer default(nextval('parents_id_seq')) primary key,
  type varchar(50) not null check(type in ('Child1', 'Child2')),
  unique (id, type),
  attribute1 varchar(50) not null unique check(length(attribute1) > 0)
);
alter sequence parents_id_seq owned by parents.id;
Run Code Online (Sandbox Code Playgroud)

特定于第一类儿童的数据保留在

create table Partial_Children1(
  id integer default(nextval('parents_id_seq')) primary key,
  type varchar(50) not null check(type = 'Child1'),
  foreign key (id, type) references Parents(id, type),
  attribute2 varchar(50) not null …
Run Code Online (Sandbox Code Playgroud)

postgresql rules

11
推荐指数
1
解决办法
1万
查看次数

可以在subversion中撤消导入吗?

不小心我在错误的目录中调用了"svn import ...".是否有一种明智的方法来消除这个错误?

谷歌搜索我没有找到任何有用的答案,并且我在stackoverflow上找到的最接近我的问题是将正确的数据导入到错误的位置,而我将错误的数据导入到正确的位置.

并且:存储库不是新的,因此删除它是不可能的.

如果我无法撤消版本控制系统中的操作,那将是一种讽刺.那么有人可以帮助我吗?(谢谢!)

编辑:我将我的存储库存储在Berkley数据库中,即它在文件系统中.查看所有文件/目录的修改日期以及刚刚修改过的文件的内容,我能够找出除了一件事之外要做的事情:有人知道txn-current的文件是什么吗?我猜它与事务处理有关,但其内容的含义是什么(长度是2个字节)?

编辑2:谢谢你们两个有用的答案.我接受了马丁的答案,因为它应该提供正确的方法(因为我在时间压力下我只是删除了一些文件,如我在第一个EDIT中暗示的那样忽略了txn-current的内容并且直到现在都很好).但请查看Wim在评论中给出的链接!

svn

6
推荐指数
2
解决办法
8639
查看次数

专门针对Haskell中特殊类型类的monad进行绑定

在第二章最后一章为少数Monads更多非常好的教程"为了一个伟大的好事学习你一个Haskell",作者定义了以下monad:

import Data.Ratio  
newtype Prob a = Prob { getProb :: [(a,Rational)] } deriving Show
flatten :: Prob (Prob a) -> Prob a  
flatten (Prob xs) = Prob $ concat $ map multAll xs  
  where multAll (Prob innerxs,p) = map (\(x,r) -> (x,p*r)) innerxs
instance Monad Prob where  
  return x = Prob [(x,1%1)]  
  m >>= f = flatten (fmap f m)  
  fail _ = Prob []
Run Code Online (Sandbox Code Playgroud)

我想知道在Haskell中是否有可能专门化绑定运算符">> ="以防monad中的值属于像Eq这样的特殊类型类,因为我想将属于同一值的所有概率相加.

haskell

5
推荐指数
1
解决办法
273
查看次数

标签 统计

haskell ×1

postgresql ×1

rules ×1

svn ×1