簡體   English   中英

在Javascript的sqlite中插入時間戳

[英]Inserting timestamp in sqlite in Javascript

我希望Sqlite自動填充時間戳,但是Javascript不允許我僅傳遞2個值(例如VALUES (?, ?) ),並讓Sqlite處理時間戳的第三個值。 我知道我可以用new Date()提供第3個值,但這不是首選方法。

如果按原樣運行以下代碼,則timestamp列全為空。

什么是正確的方法?

 db.serialize(function () {
        db.run("CREATE TABLE if not exists songs (title TEXT, lyric TEXT, timestamp DATATIME DEFAULT CURRENT_TIMESTAMP)");

        var stmt = db.prepare("INSERT INTO songs VALUES (?, ?, ?)");
        for (var i = 0; i < 10; i++) {
            stmt.run("Title" + i, "Lyric" + i);
        }
        stmt.finalize();

    });

如果要為列使用默認值,則將其保留在INSERT之外:

var stmt = db.prepare("INSERT INTO songs (title, lyric) VALUES (?, ?)");

這里要注意兩件事:

  1. INSERT語句中指定列名總是一個好主意,因此(title, lyric)添加。 這樣就不會對占位符所指的內容產生歧義。
  2. 您僅指定兩列(並讓第三列使用其默認值),因此只有兩個占位符。

暫無
暫無

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

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