一、背景
postgresql数据库执行insert into control_papers(id,num) values('88',NULL),报错误one or more assertions failed
二、解决
此错误是因为num字段设置了不为NULL的约束,而此处插入了NULL,故报错。
三、断言
断言就是一个针对数据表字段的约束。
1、断言的概念
所谓断言就是一个谓词,它表达了我们希望数据库总能满足的一个条件。域约束和参照完整性约束是断言的特殊形式。
2、SQL-92中断言的定义形式
create assertion <断言名> check <谓词>
3、断言的利弊
① 一方面能够保证数据库的一致性;
② 另一方面,检测和维护断言需要很大的开销,系统效率降的很低。一般不主张使用断言!