【问题标题】:How to know the user who modified the table in mysql如何知道mysql中修改表的用户
【发布时间】:2013-05-29 21:48:53
【问题描述】:

我有一个关于 mysql 表和用户的问题。我需要知道哪个用户修改了一个表。我有 2 张桌子。

   1. user (id,username, password and dtime)
   2. author (surname,firstname,email,phone, LastModified, userID)

LastModified 是在进行更新时写入时间戳的字段。 我希望能够写入当前用户的用户 ID,这样我就可以知道进行更新的用户。用户 ID 是“作者”表中的外键。

有人知道我该怎么做吗?

【问题讨论】:

    标签: mysql insert sql-update


    【解决方案1】:

    这不是 MySQL 可以做的,除非您的用户也有他们正在使用的 mysql 帐户。您将不得不修改您的客户端代码以包含代码代表其运行查询的用户的 ID,例如

    UPDATE author Set surname='Foo', LastModified=now(), userID=$userID
                                                       ^^^^^^^^^^^^^^^^
    

    MySQL 完全不知道您的客户端代码中发生了什么,因此由您来提供这些细节。

    如果您确实有每个用户的 MySQL 帐户,那么它会很简单

    UPDATE author Set surname='Foo', LastModified=now(), userID=USER()
                                                       ^^^^^^^^^^^^^^^
    

    但是为用户提供直接的数据库登录几乎总是一个非常糟糕的主意。

    【讨论】:

    • 非常感谢 Marc B,这个想法对我有用,我将为用户制作另一个单独的表,以便登录和用户将分开,谢谢!
    猜你喜欢
    • 2011-11-11
    • 1970-01-01
    • 1970-01-01
    • 2010-12-08
    • 2017-05-04
    • 2016-07-10
    • 2014-12-26
    • 1970-01-01
    • 2012-05-10
    相关资源
    最近更新 更多