oracle - 插入数据忽略数据库的约束

标签 oracle oracle11g validation nullable

我的应用程序有一个复杂的数据模型,其中多个表具有复杂的关系。 UI 负责验证用户输入。但是,我有一个要求,用户希望暂时保存他的数据(有点像草稿),以便他可以在一段时间内继续对其进行更改,直到他满意为止。在这种情况下,不需要进行验证,因为他可能不会立即输入某些强制属性。虽然在这种情况下我可以轻松关闭验证,但数据库级别的非空约束和引用完整性不允许我这样做。

还有哪些其他可行的方法可以做到这一点?由于涉及的表格太多,我不想复制它们,让用户在一些临时表格中插入数据,直到最终完成他的草稿。

最佳答案

看看可延迟约束:

create table daa_delete_me (col1 number not null deferrable);

alter session set constraints = deferred;

insert into daa_delete_me values (null); -- succeeds

commit; -- fails

insert into daa_delete_me values (null);

update daa_delete_me set col1 = 1;

commit; -- succeeds

关于oracle - 插入数据忽略数据库的约束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10814243/

相关文章:

validation - 未声明的类型 'valid',没有这样的模块 'Validation'

asp.net - 带有千位分隔符的正则表达式有效数字

asp.net - EF6、MVC 5 和 Oracle 数据库

oracle - SQLDeveloper 将结果导出到 CSV 的速度很慢

sql - 删除 11g 后留下 1000 条记录?

database - Oracle 11g JDBC 预取键

sql - 在 SQL 中按用户对列值进行分类

sql - SQL唯一组合

PHP和oracle存储过程

validation - CakePHP 中嵌套所需的规则