在两个表中插入相同的时间戳

时间:2015-10-27 17:12:35

标签: mysql sql

我需要在两个表中插入相同的时间戳。

以下是我正在尝试做的一个例子:

INSERT INTO table1 (id, value, time) VALUES (NULL, 'test', CURRENT_TIMESTAMP)
INSERT INTO table2 (id, time, user) VALUES (NULL, CURRENT_TIMESTAMP, 'username')

基本上,问题在于无法保证table1中的时间与table2完全相同。

我可以选择一个时间戳,然后在INSERT语句中使用它,就像在这个伪代码中一样:

$time = $db->query("SELECT CURRENT_TIMESTAMP")->fetch_rows()[0];
$db->query("INSERT INTO table1 (id, value, time) VALUES (NULL, 'test', '".$time."')");
$db->query("INSERT INTO table2 (id, time, user) VALUES (NULL, '".$time."', 'username')");

我的问题是:有更好的解决方案吗?

由于

1 个答案:

答案 0 :(得分:0)

总有一个更好的解决方案。

但是,如果您的应用程序确实依赖于相同的时间戳,那么您最好在PHP代码中确定它,然后在INSERT语句中使用它。

$time = date('Y-m-d H:i:s');
$db->query("INSERT INTO table1 (id, value, time) VALUES (NULL, 'test', '".$time."')");
$db->query("INSERT INTO table2 (id, time, user) VALUES (NULL, '".$time."', 'username')");

您当然可以在必要时从数据库服务器检索时间戳,如示例所示。

还有其他解决方案,比如使用触发器等,但在我看来,大多数情况下这只会让它变得复杂而没有真正的好处。