gpt4 book ai didi

sql - 添加检查约束不工作 SQL

转载 作者:行者123 更新时间:2023-11-29 11:54:23 25 4
gpt4 key购买 nike

我需要向表中添加一个约束,使 ab 列始终大于 h 列。我试过了

ALTER TABLE batting
ADD constraint possibleHits check (ab>h);

但是返回

ERROR:  check constraint "possiblehits" is violated by some row

********** Error **********

ERROR: check constraint "possiblehits" is violated by some row
SQL state: 23514

作为一个错误。

我跑了

select * from batting where ab<h

它不返回任何行。

关于我做错了什么的任何想法?或者有没有办法做一些像添加

NOT VALID

声明以便它不会对现有行强制执行约束?我知道这在 mysql 中有效,但在 postgres 中它仅适用于键。

编辑:

所以正如所指出的那样,有些情况下 ab = h 但是有没有办法从约束中排除现有行?

最佳答案

您应该检查 ab=h 的值。我相信您会发现您的问题。

请参阅下面的一个示例。

sqlfiddle demo

关于sql - 添加检查约束不工作 SQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20080645/

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