我对mysql表和用户有疑问。我需要知道哪个用户修改了一个表。我有2张桌子。
1. user (id,username, password and dtime)
2. author (surname,firstname,email,phone, LastModified, userID)
LastModified是在进行更新时写入时间戳的字段。 我希望能够编写当前用户的用户ID,以便我知道进行更新的用户。用户标识是表'author'中的外键。
任何人都有想法如何做到这一点?
答案 0 :(得分:1)
这不是MySQL可以做的事情,除非你的用户也有他们正在使用的mysql帐户。您必须修改客户端代码以包含代表其运行查询的代码的用户的ID,例如
UPDATE author Set surname='Foo', LastModified=now(), userID=$userID
^^^^^^^^^^^^^^^^
MySQL完全没有意识到你的客户端代码会发生什么,所以由你来提供这些细节。
如果您拥有每用户MySQL帐户,那么它就像
一样简单UPDATE author Set surname='Foo', LastModified=now(), userID=USER()
^^^^^^^^^^^^^^^
但为用户提供直接的数据库登录几乎总是一个令人难以置信的糟糕想法。