【问题标题】:Same code inserts data into one database but not into another相同的代码将数据插入一个数据库但不插入另一个
【发布时间】:2016-08-18 21:18:54
【问题描述】:

我现在面临一个奇怪的问题。我正在使用 pypyodbc 将数据插入到 AWS 托管的测试数据库中。我创建的这个数据库是手工创建的,并没有模仿表之间的所有关系和诸如此类的东西。我所做的只是创建一个与原始(我们称之为主)数据库具有相同列和相同数据类型的表。当我运行我的代码并插入数据时,它在测试环境中工作。然后我把它改到主数据库,代码一直运行,但实际上没有输入数据。是否有可能存在安全协议阻止我通过 Python 脚本而不是通过正常的 SQL 查询输入数据?有什么我遗漏的吗?

【问题讨论】:

    标签: python sql-server pypyodbc


    【解决方案1】:

    听起来它没有指向正确的数据库。您是否确保连接信息更改为指向正确的数据库?那么服务器名称是否正确,登录凭据是否正确等?

    【讨论】:

    • 是的,我只是仔细检查了一遍,我什至从脚本中的数据库中提取了信息。即使我包含执行和提交行,也没有输入任何内容。
    • 您是否尝试以您用于 ODBC 连接的用户身份登录数据库并自行运行查询以确保该用户能够执行您需要的操作?如果连接信息很好并且它可以在另一台机器上运行,那么除了用户权限之外我想不出其他任何东西。
    • ( cc: @StevenSetteducatiJr. ) ...但如果是权限不足的问题,那么人们会期望代码会抛出诸如“INSERT 权限被拒绝”之类的错误。 (除非 INSERT 是在存储过程中完成的,有时会像 here 讨论的那样“隐藏”异常。) Steven:我们可以假设您没有忽略任何可能从“主”数据库返回的异常吗?
    • @GordThompson 我根本不会忽略从数据库中抛出的任何异常,因为这仍处于错误测试阶段
    • @MichaelPlatt 所以我刚刚意识到我将测试数据库硬编码到函数中,该函数将我的插入创建到链接到查询的字符串中,所以你是 100% 正确的。非常感谢!
    猜你喜欢
    • 2019-08-30
    • 2014-11-21
    • 2022-09-26
    • 2011-11-27
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    相关资源
    最近更新 更多