gpt4 book ai didi

php - 在 PHP 中从 MySQL 中提取主键

转载 作者:行者123 更新时间:2023-11-29 01:01:52 24 4
gpt4 key购买 nike

我已经创建了一个 PHP 脚本,但我缺少提取主键的方法,我在下面给出了流程,请帮助我如何修改以获取主键

我正在使用 MySQL 数据库,为 Joomla 工作,我的要求是跟踪任何表上的插入/更新/删除等事件,并使用触发器将其存储在另一个审计表中,即我正在进行审计。 DB的表结构:很少有表没有PK,也没有自增键

我的脚本流程是:

  1. 我从数据库中取出所有表。
  2. 我检查表是否有任何触发器。
  3. 如果是,则它会检查下一张 table 等等。
  4. 如果它没有找到任何触发器,那么它会为表创建触发器,这样,

    • 它首先检查表是否有任何主键(用于为每次更改插入跟踪审计表)
    • 如果它有主键,那么它会进一步使用它来创建触发器。
    • 如果它没有找到任何 PK,那么它将继续创建触发器而不在审计表中插入任何 id

现在,我的问题是我每次都需要 PK,这样我就可以记录执行插入/更新/删除的任何特定表的 ID,这样我就可以进一步使用这个审计跟踪表来复制生产数据库..现在正如我之前提到的,我无法在某些表中使用 PK/自动递增,那么我应该怎么做才能获得完成更改的特定 ID?

请指导我...极客!!!

最佳答案

如果我正确理解您的问题,您需要为没有主键且没有其他类型的唯一标识符的表行提供唯一标识符。据我所知,这并不容易。其他数据库有唯一的行 ID,但 mySQL 没有。您可以使用每一列的值来尝试识别行,但这远非重复安全 - 可能有两行或更多行包含完全相同的值。所以我想说,如果没有唯一标识符,这是根本无法完成的事情。

这个 SO 问题中的一些想法:

MySQL: is there something like an internal record identifier for every record in a MySQL table?

关于php - 在 PHP 中从 MySQL 中提取主键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2605392/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com