簡體   English   中英

在兩個表中插入相同的時間戳

[英]Insert same timestamp in two tables

我需要在兩個表中插入相同的時間戳。

這是我要執行的操作的一個示例:

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

基本上,問題是不能保證距表1的時間與距表2的時間完全相同。

我可以選擇一個時間戳,然后在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')");

我的問題是:有沒有更好的解決方案?

謝謝

總會有更好的解決方案。

但是,如果您的應用程序確實依賴於相同的時間戳,那么最好在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')");

當然,您可以根據需要從數據庫服務器中檢索時間戳,如示例所示。

還有其他解決方案,例如使用觸發器等,但是在我看來,在大多數情況下,這只會使觸發器變得復雜,而沒有真正的好處。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM