我使用Gist
在通常的“非重叠”时间段上有所改变override func viewDidLayoutSubviews() {
print(tableView.contentSize.height) //Exact Content Size of UITableView
}
func tableView(_ tableView: UITableView, didEndDisplaying cell: UITableViewCell, forRowAt indexPath: IndexPath) {
tableView.layoutIfNeeded()
}
我上面的表有(外键)company_ids,我正在创建securityids。
每家公司可以随时拥有多种证券,但只有一种证券可以作为主要证券。我怀疑它的内容如下,但无法找到一个例子:
CREATE TABLE foo(
id serial,
company_id int NOT NULL,
primarylisting boolean NOT NULL,
validrange daterange NOT NULL,
CONSTRAINT foo_primarykey PRIMARY KEY (id)
) WITH ( OIDS=FALSE);
或
ALTER TABLE foo ADD CONSTRAINT unique_primarylisting_daterange
EXCLUDE USING gist (company_id WITH =,validrange WITH &&) where primarylisting=1;
请注意,它不能主要列入WITH =因为虽然我不能在任何一个点拥有多个主要证券,但我可以拥有多个非主要证券。
感谢
答案 0 :(得分:0)
你几乎第一次得到right syntax。
但部分约束(和索引)的WHERE
谓词需要在括号中。另外,您不应将BOOLEAN
列与1
进行比较(您可以使用bool_col = TRUE
,bool_col IS TRUE
或仅使用bool_col
):
ALTER TABLE foo
ADD CONSTRAINT unique_primarylisting_daterange
EXCLUDE USING gist (company_id WITH =, validrange WITH &&) WHERE (primarylisting);