1

如何在不知道表的任何列并因此使用默认值的情况下创建一个 now 行?

在 sqlite3 我只是这样做:

sqlite> CREATE TABLE t ("id" INTEGER PRIMARY KEY, "text" TEXT DEFAULT "hello world");
sqlite> INSERT INTO t DEFAULT VALUES;
sqlite> SELECT * FROM t;
1|hello world

但在 sqlite2.8.17 我得到:

sqlite> INSERT INTO t DEFAULT VALUES;
SQL error near 'DEFAULT': Syntax error.

有没有办法在 sqlite2 中正确执行此操作,或者我是否需要在插入语句中手动提供值?

4

1 回答 1

5

您必须至少指定一个值;然后所有其他人将获得他们的默认值。

rowid指定时自动获取一个值NULL,因此您可以使用该值:

INSERT INTO t(id) VALUES(NULL);
于 2013-06-13T08:53:49.477 回答