数据库数据使用Python SqlAlchemy或Sql Query进行完整性检查

时间:2017-05-10 15:48:50

标签: python sql sqlalchemy data-integrity

我已导入并将继续将来自不同源的数据导入sql server数据库。一些列的总和应该与另一个表中的一个量的5美元差异进行一些逻辑检查。导入时我很难检查这个逻辑,因为有些数据会被手动插入,有些数据是使用Excel VBA或python导入的。数据准确性对我来说非常重要。我想在插入数据后检查。我在想两个选择

  1. Python with SqlAlchemy并在python中编写逻辑
  2. 创建存储过程或直接SQL验证
  3. SQLAlchemy与存储过程进行数据检查的优缺点是什么?或其他解决方案?

    我认为SQLAlchemy的优势在于自动化:

    1. 可能组合使用Jupyter以获得良好的用户界面
    2. 逻辑更容易编写,例如循环一个表,每一行应该是另一个表的总和,其中一些条件。
    3. SQL存储过程的好处

      1. 可以在SQL Server管理工作室中进行管理

1 个答案:

答案 0 :(得分:1)

答案都不是。大多数RDBMS都内置了机制来对插入行或列的数据实施限制。如你所说

  

由于某些数据,我很难在导入时检查此逻辑   将手动插入,一些使用Excel VBA或python导入。   数据准确性对我来说非常重要

您无法在所有这些地方拥有代码。有效的是constraints

  

CHECK约束通过限制值来强制域完整性   被一列或多列接受。您可以创建CHECK约束   使用任何返回TRUE或FALSE的逻辑(布尔)表达式   关于逻辑运算符

您当然可以使用存储过程,但约束更有效,更透明,更易于维护。