Mysql 自动向记录中添加用户和日期
我有一个可以被多个用户访问的数据库。我是否可以设置表格,以便每当有人输入新记录或修改记录时,他/她的用户名和输入的日期都会存储在与记录本身相同的表格中的两列中。该表如下所示:Mysql 自动向记录中添加用户和日期,mysql,phpmyadmin,Mysql,Phpmyadmin,我有一个可以被多个用户访问的数据库。我是否可以设置表格,以便每当有人输入新记录或修改记录时,他/她的用户名和输入的日期都会存储在与记录本身相同的表格中的两列中。该表如下所示: Id | Name | Username | Date Entered | Date Modified 1 | Cat | john | 1999-05-05 | 1996-06-06 我使用的GUI是phpMyAdmin 谢谢 您可以在数据类型声明之后使用notnull创建表时,将列设置
Id | Name | Username | Date Entered | Date Modified
1 | Cat | john | 1999-05-05 | 1996-06-06
我使用的GUI是phpMyAdmin
谢谢 您可以在数据类型声明之后使用
notnull
创建表时,将列设置为不允许空值。否则,您可以使用ALTERTABLE语句来更改已存在的列,或者将该列添加到现有表中
这将阻止某人添加记录,但不会进行更新。如果要引用单独的用户表,则可以使用外键关系来确保在填充用户列时,将使用有效的用户来完成
如果未提供值,则可以使用默认约束设置日期字段的值
ALTER TABLE x
ADD USER VARCHAR(45) NOT NULL
ALTER TABLE x
ADD DATE_ENTERED DATE NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
ALTER TABLE x
ADD DATE_ENTERED DATE NOT NULL DEFAULT ON UPDATE CURRENT_TIMESTAMP
首先,您可能需要花一些时间考虑设计审计机制的最佳方法,因为在数据库中的每个表中添加两列可能不是最佳方法 话虽如此,你所寻找的是一个触发器。这是一段SQL,每次调用指定操作时都会执行。您的案例的一个粗略示例: 创建触发器审核 在“表格名称”上插入后 在“表格名称”中插入(用户、时间)
我不记得mysql的确切语法,但这是一个粗略的例子,说明了您需要什么。如果不清楚,请提出后续问题。是否可以这样做,以便用户可以更新和添加记录?@Tim:可以,用户可以添加和更新记录。如果未提供值/null,则默认约束将应用该值。有关默认时间戳约束的详细信息: