Sql 有没有办法解决这个约束问题?

Sql 有没有办法解决这个约束问题?,sql,oracle,Sql,Oracle,我正在尝试更新对象,但出现以下错误: SQL Error: 2290, SQLState: 23000 2020-11-26 09:05:18.187 ERROR 6395 --- [ XNIO-1 task-62] o.h.engine.jdbc.spi.SqlExceptionHelper : ORA-02290: check constraint (T_MATRICULE) violated 2020-11-26 09:05:18.187 ERROR 6395 --- [ XN

我正在尝试更新对象,但出现以下错误:

SQL Error: 2290, SQLState: 23000
2020-11-26 09:05:18.187 ERROR 6395 --- 
[ XNIO-1 task-62] o.h.engine.jdbc.spi.SqlExceptionHelper   : 
ORA-02290: check constraint (T_MATRICULE) violated

2020-11-26 09:05:18.187 ERROR 6395 --- 
[ XNIO-1 task-62] o.h.i.ExceptionMapperStandardImpl        : 
HHH000346: Error during managed flush 
[org.hibernate.exception.ConstraintViolationException: could not execute statement]
这:

ORA-02290:违反检查约束(T_矩阵)

表示列上有一个检查约束,该约束被违反。您应该检查约束并。。。嗯,在更新该列时不要违反它


例如,可能是该列允许值
1
(表示“开”)和
0
(表示“关”),并且您试图在一个表中将其更新为
2

检查约束被违反

可以使用以下查询检查约束定义:

SELECT * FROM USER_CONSTRAINTS WHERE CONSTRAINT_NAME = 'T_MATRICULE';

尽量避免根据
CHECK
constraint validation

插入/更新值。我有一个空值约束,因此如果我希望此外键为空值,如何更新我的值?如果您希望允许该列为空值,请删除检查约束。如果它(一列)在创建表时被简单地设置为NOTNULL(从而进行隐式检查约束),那么
altertable your\u table modify column\u name NULL但由于它是外键,我可以将其设置为null吗?是的,没有问题。外键约束确保您不能插入无效值(在引用的表/列中不存在),但可以将其保留为空(即NULL)。