Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何在新表中存储创建日期?_Mysql_Sql_Database_Phpmyadmin - Fatal编程技术网

Mysql 如何在新表中存储创建日期?

Mysql 如何在新表中存储创建日期?,mysql,sql,database,phpmyadmin,Mysql,Sql,Database,Phpmyadmin,我正在构建一个数据库,在一个名为employees的表中存储有关员工的信息,并希望在另一个名为log info的表中存储日志信息。 日志信息应包含创建者的姓名、创建和修改日期 我应该使用什么值以及如何使创建日期不可更改 因为我不想将其存储在employees表中,所以在employees表上创建条目时,是否有一种方法可以自动更改另一个表上的日期和时间。 这只能通过代码来完成,或者我只能用SQL语句来完成 这是数据库规范。我应该如何分割数据 主要数据: 名字 生日 身份证 他是一名雇员 联系信息

我正在构建一个数据库,在一个名为employees的表中存储有关员工的信息,并希望在另一个名为log info的表中存储日志信息。 日志信息应包含创建者的姓名、创建和修改日期

我应该使用什么值以及如何使创建日期不可更改


因为我不想将其存储在employees表中,所以在employees表上创建条目时,是否有一种方法可以自动更改另一个表上的日期和时间。 这只能通过代码来完成,或者我只能用SQL语句来完成

这是数据库规范。我应该如何分割数据

主要数据:

  • 名字
  • 生日
  • 身份证
  • 他是一名雇员
  • 联系信息(电子邮件、电话、地址)
以下信息以英文、西班牙文和法文提供:

  • 导言
  • 工作经验
  • 教育信息
日志信息:

  • 谁以及何时创建了条目
  • 上次修改数据的人和时间

将列声明为
时间戳
日期时间
,并对其进行初始化。以下是一个例子:

CREATE TABLE t1 (
  dt DATETIME DEFAULT CURRENT_TIMESTAMP CURRENT_TIMESTAMP
);
MySQL文档对如何做到这一点有很长的解释

编辑:

我认为应该将创建日期存储在存储数据的同一个表中。这似乎是合乎逻辑的,我基本上就是这样设计我所有的表的


如果确实要将其放入另一个表中,那么每次在第一个表中插入一行时,可以使用
insert
触发器在另一个表中插入一行。值得注意的是,我从未使用过这种方法。我总是将这些创建日期与数据一起放在表中。

您将一列声明为
时间戳
日期时间
,并对其进行初始化。以下是一个例子:

CREATE TABLE t1 (
  dt DATETIME DEFAULT CURRENT_TIMESTAMP CURRENT_TIMESTAMP
);
MySQL文档对如何做到这一点有很长的解释

编辑:

我认为应该将创建日期存储在存储数据的同一个表中。这似乎是合乎逻辑的,我基本上就是这样设计我所有的表的


如果确实要将其放入另一个表中,那么每次在第一个表中插入一行时,可以使用
insert
触发器在另一个表中插入一行。值得注意的是,我从未使用过这种方法。我总是将这些创建日期与数据一起放在表中。

您将一列声明为
时间戳
日期时间
,并对其进行初始化。以下是一个例子:

CREATE TABLE t1 (
  dt DATETIME DEFAULT CURRENT_TIMESTAMP CURRENT_TIMESTAMP
);
MySQL文档对如何做到这一点有很长的解释

编辑:

我认为应该将创建日期存储在存储数据的同一个表中。这似乎是合乎逻辑的,我基本上就是这样设计我所有的表的


如果确实要将其放入另一个表中,那么每次在第一个表中插入一行时,可以使用
insert
触发器在另一个表中插入一行。值得注意的是,我从未使用过这种方法。我总是将这些创建日期与数据一起放在表中。

您将一列声明为
时间戳
日期时间
,并对其进行初始化。以下是一个例子:

CREATE TABLE t1 (
  dt DATETIME DEFAULT CURRENT_TIMESTAMP CURRENT_TIMESTAMP
);
MySQL文档对如何做到这一点有很长的解释

编辑:

我认为应该将创建日期存储在存储数据的同一个表中。这似乎是合乎逻辑的,我基本上就是这样设计我所有的表的

如果确实要将其放入另一个表中,那么每次在第一个表中插入一行时,可以使用
insert
触发器在另一个表中插入一行。值得注意的是,我从未使用过这种方法。我总是将这些创建日期与数据一起放在表中。

您可以使用例如创建日志记录表,如下所示:

CREATE TABLE `log_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `entry_time` TIMESTAMP NOT NULL,
  `emp_id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
假设employees表有一个employees_name列和一个id主键,您可以在其上创建一个触发器,在插入名称后自动执行该触发器:

delimiter |

CREATE TRIGGER loginsert AFTER INSERT ON employee_name
  FOR EACH ROW
  BEGIN
    INSERT INTO log_info SET emp_id=NEW.id, entry_time= NOW();
  END;
|
这将允许您为日志记录使用不同的表,您还可以将更多数据插入日志信息表,如插入的员工的密钥、插入记录的人员等。。。只需检查文档中的所有语法。

您可以使用以下方法创建日志记录表:

CREATE TABLE `log_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `entry_time` TIMESTAMP NOT NULL,
  `emp_id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
假设employees表有一个employees_name列和一个id主键,您可以在其上创建一个触发器,在插入名称后自动执行该触发器:

delimiter |

CREATE TRIGGER loginsert AFTER INSERT ON employee_name
  FOR EACH ROW
  BEGIN
    INSERT INTO log_info SET emp_id=NEW.id, entry_time= NOW();
  END;
|
这将允许您为日志记录使用不同的表,您还可以将更多数据插入日志信息表,如插入的员工的密钥、插入记录的人员等。。。只需检查文档中的所有语法。

您可以使用以下方法创建日志记录表:

CREATE TABLE `log_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `entry_time` TIMESTAMP NOT NULL,
  `emp_id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
假设employees表有一个employees_name列和一个id主键,您可以在其上创建一个触发器,在插入名称后自动执行该触发器:

delimiter |

CREATE TRIGGER loginsert AFTER INSERT ON employee_name
  FOR EACH ROW
  BEGIN
    INSERT INTO log_info SET emp_id=NEW.id, entry_time= NOW();
  END;
|
这将允许您为日志记录使用不同的表,您还可以将更多数据插入日志信息表,如插入的员工的密钥、插入记录的人员等。。。只需检查文档中的所有语法。

您可以使用以下方法创建日志记录表:

CREATE TABLE `log_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `entry_time` TIMESTAMP NOT NULL,
  `emp_id` int(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8;
假设employees表有一个employees_name列和一个id主键,您可以在其上创建一个触发器,在插入名称后自动执行该触发器:

delimiter |

CREATE TRIGGER loginsert AFTER INSERT ON employee_name
  FOR EACH ROW
  BEGIN
    INSERT INTO log_info SET emp_id=NEW.id, entry_time= NOW();
  END;
|

这将允许您为日志记录使用不同的表,您还可以将更多数据插入日志信息表,如插入的员工的密钥、插入记录的人员等。。。只需检查文档中的所有语法。

这只能通过代码来完成,或者我只能使用SQL语句来完成?
如果您可以访问这两种语句,那么您可以通过两种方式来完成。这是一个关于最终如何使用SQL的相当普遍的问题。答案可以在文档中找到