gpt4 book ai didi

sql - 更改表添加约束时出错

转载 作者:行者123 更新时间:2023-12-04 14:18:56 26 4
gpt4 key购买 nike

我想为我的表名 Account,属性名 Type 添加约束。在 Type 中,我想添加帐户类型,例如:Saving、Credit Card、Home Loan、Personal Loan、Fixed Deposit、Current、iSaver。

这是我的代码:

ALTER TABLE ACCOUNT 
ADD CONSTRAINT AccountCK_Type
CHECK (TYPE IN('Saving','Credit Card','Home Loan','Personal Loan','Fixed Deposit','Current','iSaver'));

错误显示:

>Error report -
>
>SQL Error: ORA-02293: cannot validate (SHT461.ACCOUNTCK_TYPE) - check constraint violated
>02293. 00000 - "cannot validate (%s.%s) - check constraint violated"
>
>*Cause: an alter table operation tried to validate a check constraint to
> populated table that had nocomplying values.
>
>*Action: Obvious

请告诉我如何添加约束。谢谢。

最佳答案

如果您只希望约束适用于 future 的数据更改,正如您在评论中所说,那么您可以使用 NOVALIDATE clause 使其忽略其他现有值。 :

ALTER TABLE ACCOUNT 
ADD CONSTRAINT AccountCK_Type
CHECK (TYPE IN('Saving','Credit Card','Home Loan','Personal Loan',
'Fixed Deposit','Current','iSaver'))
ENABLE NOVALIDATE;

否则,在创建约束之前,您必须清理现有数据 - 删除或更正该列中具有任何其他值的行。

关于sql - 更改表添加约束时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30138602/

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