我已导入并将继续将来自不同源的数据导入sql server数据库。一些列的总和应该与另一个表中的一个量的5美元差异进行一些逻辑检查。导入时我很难检查这个逻辑,因为有些数据会被手动插入,有些数据是使用Excel VBA或python导入的。数据准确性对我来说非常重要。我想在插入数据后检查。我在想两个选择
SQLAlchemy与存储过程进行数据检查的优缺点是什么?或其他解决方案?
我认为SQLAlchemy的优势在于自动化:
SQL存储过程的好处
答案 0 :(得分:1)
答案都不是。大多数RDBMS都内置了机制来对插入行或列的数据实施限制。如你所说
由于某些数据,我很难在导入时检查此逻辑 将手动插入,一些使用Excel VBA或python导入。 数据准确性对我来说非常重要
您无法在所有这些地方拥有代码。有效的是constraints。
CHECK约束通过限制值来强制域完整性 被一列或多列接受。您可以创建CHECK约束 使用任何返回TRUE或FALSE的逻辑(布尔)表达式 关于逻辑运算符
您当然可以使用存储过程,但约束更有效,更透明,更易于维护。