[英]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.