【问题标题】:In SQLite how does one define a column default to be the current user?在 SQLite 中,如何将一列默认定义为当前用户?
【发布时间】:2010-10-06 13:33:59
【问题描述】:

在 SQLite 数据库中如何定义一列默认为当前用户?

【问题讨论】:

    标签: sqlite


    【解决方案1】:

    您是在谈论列的默认值吗? SQLite 的only valid 默认值如下:

    DEFAULT 约束指定执行 INSERT 时使用的默认值。该值可以是 NULL、字符串常量或数字。默认值也可以是与特殊情况无关的关键字 CURRENT_TIME、CURRENT_DATE 或 CURRENT_TIMESTAMP 之一。

    【讨论】:

    • 实际上并非完全为真;我有一个声明如下的列:“timestamp” TEXT DEFAULT (strftime('%Y-%m-%dT%H:%M','now', 'localtime')),它具有默认的函数值。也许这可以归类为字符串常量?
    【解决方案2】:

    SQLite 没有用户的概念。当您连接到 SQLite 时,您不会使用用户名/密码“登录”。

    如果您需要当前操作系统用户,您应该在从应用程序插入数据时将其指定为字符串。

    【讨论】:

      【解决方案3】:

      简单地说:没有。打算这样做意味着您的数据库必须知道应用程序状态,这有点倒退。

      【讨论】:

      • 我不确定。在大多数大型企业中,他们的内部审计部门都需要在包含 last_edited_by、last_edited_at 等详细信息的表中添加额外的列。我总是将这些列默认为当前用户和当前日期时间。以任何其他方式做这件事都是一项艰巨的工作。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-05
      • 1970-01-01
      • 1970-01-01
      • 2011-01-25
      • 2016-04-27
      • 2015-01-09
      相关资源
      最近更新 更多