在SQLite2中插入默认值

gam*_*mag 1 sqlite

如何在不知道表的任何列并使用默认值的情况下创建现在的行?

在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
Run Code Online (Sandbox Code Playgroud)

但在sqlite2.8.17我得到:

sqlite> INSERT INTO t DEFAULT VALUES;
SQL error near 'DEFAULT': Syntax error.
Run Code Online (Sandbox Code Playgroud)

有没有办法在sqlite2中正确执行此操作,还是需要在insert语句中手动赋值?

CL.*_*CL. 5

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

rowid自动获取当您指定的值NULL,这样你就可以使用一个:

INSERT INTO t(id) VALUES(NULL);
Run Code Online (Sandbox Code Playgroud)