这个查询有什么问题?

发布于 2024-11-18 16:43:00 字数 339 浏览 3 评论 0原文

CREATE TABLE IF NOT EXISTS fw_users (id INT(64) NOT NULL PRIMARY KEY AUTOINCREMENT, auth CHAR(64) UNIQUE, money INT(32) DEFAULT '0', unlocks VARCHAR(8000))

我看不到其中有任何错误,但 SQLite 抛出一个错误:

Query failed! AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY

这没有意义,id IS 是一个整数

CREATE TABLE IF NOT EXISTS fw_users (id INT(64) NOT NULL PRIMARY KEY AUTOINCREMENT, auth CHAR(64) UNIQUE, money INT(32) DEFAULT '0', unlocks VARCHAR(8000))

I can't see any error in it, but SQLite throws an error:

Query failed! AUTOINCREMENT is only allowed on an INTEGER PRIMARY KEY

It doesn't make sense, id IS an integer

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

笑忘罢 2024-11-25 16:43:01

INT(64) 不够接近;它必须INTEGER

INT(64) isn't close enough; it must be INTEGER.

浮生面具三千个 2024-11-25 16:43:01

SQLite 表示法是INTEGER PRIMARY KEY文档参考:

如果您将表的列声明为INTEGER PRIMARY KEY,则每当您将 NULL 插入表的该列时,NULL 都会自动转换为一个整数,该整数比表中所有其他行中该列的最大值大 1,如果表为空,则为 1。或者,如果最大的现有整数密钥 9223372036854775807 正在使用,则随机选择一个未使用的密钥值。
[...]

创建表 t1(
  一个整数主键,
  b 整数
);

The SQLite notation is INTEGER PRIMARY KEY. Docs reference:

If you declare a column of a table to be INTEGER PRIMARY KEY, then whenever you insert a NULL into that column of the table, the NULL is automatically converted into an integer which is one greater than the largest value of that column over all other rows in the table, or 1 if the table is empty. Or, if the largest existing integer key 9223372036854775807 is in use then an unused key value is chosen at random.
[...]

CREATE TABLE t1(
  a INTEGER PRIMARY KEY,
  b INTEGER
);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文