- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下 SQLite 表:
CREATE TABLE podcast_search (
_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
search TEXT NOT NULL UNIQUE
)
_id | search | sort
===================
1 | foo | 1
2 | bar | 2
3 | quiz | 3
1
来自
foo
的行至
foo2
,值应如下所示:
_id | search | sort
===================
2 | bar | 2
3 | quiz | 3
1 | foo2 | 4
CREATE TABLE podcast_search (
_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
search TEXT NOT NULL UNIQUE,
update_date TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
)
CREATE TRIGGER update_date_update_trigger
AFTER UPDATE ON podcast_search FOR EACH ROW
BEGIN
UPDATE podcast_search
SET update_date = CURRENT_TIMESTAMP
WHERE _id = OLD._id;
END
1000ms
为了可靠地排序,在插入/更新操作之间休眠,这种延迟量对于单元测试来说非常烦人。
AUTOINCREMENT
值仅存在于主键列。 SQLite 是否提供任何其他
AUTOINCREMENT
或
AUTOINCREMENT
- 类似的选项?
sort INTEGER NOT NULL UNIQUE
列和
SELECT
-ing 该列中最大的行并在
INSERT/UPDATE
之前手动递增它:
CREATE TABLE podcast_search (
_id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
search TEXT NOT NULL UNIQUE,
sort INTEGER NOT NULL UNIQUE
)
SELECT sort from podcast_search ORDER BY sort DESC
sort
在应用程序代码中,或将其设置为
0
TRIGGER
中这样做吗?反而?
最佳答案
I thought I could implement a vector clock instead, but it seems that AUTOINCREMENT values only exist for primary key columns. Does SQLite offer any other AUTOINCREMENT or AUTOINCREMENT-like option?
The AUTOINCREMENT keyword imposes extra CPU, memory, disk space, and disk I/O overhead and should be avoided if not strictly needed. It is usually not needed.
max(the_column) + 1
的子查询会做你想做的事。这可能在 UPDATE、TRIGGER 或 INSERT 中。
rowid = max(rowid) + 1
基本上是 SQLite 为 rowid 分配值的方式,除非在将 1 添加到 max(rowid) 和从表 中获得的相应表的值中的较大者时使用 AUTOINCREMENT sqlite_sequence (仅在使用 AUTOINCREMENT 时才会存在)。它正在引用和维护 sqlite_sequence 招致处罚。 -- SETUP THE DATA FOR TESTING
DROP TABLE IF EXISTS podcast_searchv1;
CREATE TABLE IF NOT EXISTS podcast_searchv1 (
_id INTEGER NOT NULL PRIMARY KEY,
search TEXT NOT NULL UNIQUE
);
INSERT INTO podcast_searchv1 (search)
VALUES('foo'),('bar'),('guide')
;
-- Show original data
SELECT * FROM podcast_searchv1;
-- DO THE UPDATE
UPDATE podcast_searchv1 SET search = 'new value', _id = (SELECT max(_id) + 1 FROM podcast_searchv1) WHERE search = 'foo';
-- Show the changed data
SELECT * FROM podcast_searchv1;
关于SQLite AUTOINCREMENT 非主键列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54731118/
SQLite Autoincrement(自动递增) SQLite 的 AUTOINCREMENT 是一个关键字,用于表中的字段值自动递增。我们可以在创建表时在特定的列名称上使用 AUTOINCRE
我有以下 SQLite 表: CREATE TABLE podcast_search ( _id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
我创建了一个带有自动递增字段的数据库: filecur.execute("CREATE TABLE IF NOT EXISTS File_Data (_FID INTEGER PRIMARY KEY
假设我有一个看起来像这样的模型 Issue: class Issue(models.Model): title = models.CharField(max_length=100) a
我正在尝试使用 fts3 在 sqlite3 中创建一个虚拟表,并将一列作为自动增量,但是在插入值时,该列没有被填充。 代码: CREATE VIRTUAL TABLE contact USING f
我正在寻找一种在 MySQL“CREATE VIEW”中插入一种自动增量列的方法。 我使用的 ORM 有一些限制,其中之一是每个表(或 View )必须只有一个唯一标识符... 无论如何......从
我最近发布了一个应用程序:https://my.kendozone.com在 Laravel 5.3/MySQL 中 我正在获取用户,但一件奇怪的事情是我的用户 ID 没有增加 1。 此处最后 10
我想在行计数器更新时模拟自动增量。 我的触发器是: CREATE DEFINER = CURRENT_USER TRIGGER `db`.`token_AFTER_UPDATE` AFTER UPDA
大家好, 我正在尝试制作一个表,其中包含一堆引用用户的 ID,并且对于每个用户,将有多个帖子也应该有自己的 ID。我的问题是如何制作表格,以便在为某个用户插入记录时,他们的帖子 ID 应递增 1。这意
我正在运行一个 fgetcsv 查询,以将一堆数据从 CSV 导入 WordPress。 我想知道如何从某个数字开始自动递增,例如,从 1000 开始。 $import1="INSERT into w
我搜索过堆栈溢出问题,但找不到解决方案。这是我的 SQLite onCreate 代码。 public void onCreate(SQLiteDatabase database) { Str
我正在使用 OleDb 处理 MS Access 数据库文件。这是片段: OleDbCommand command = oleDbConnection.CreateCommand(); command
我在数据库中有一个表,主键是'ID',我想问一下如何让它成为AUTOINCREMENT 我知道这很容易问,但我不知道我该怎么做。 谢谢 最佳答案 有一个属性“Identity Specificatio
我在 AUTOINCREMENT 附近遇到语法错误。这个错误的原因是什么? CREATE TABLE person ( id INTEGER NOT NULL AUTOINCREMENT,
我想将数据上传到雪花表中。雪花表有一个带 AUTOINCREMENT 的主键字段。 当我尝试在没有主键字段的情况下将数据上传到雪花时,我收到了以下错误消息: The COPY failed with
我正在将数据从 csv 导出到 mysql 数据库中,我希望数据库为每个导入的记录生成一个唯一的 id。我想使用唯一字段在 Crystal 报告中生成收据编号。 你认为最好的方法是什么? 最佳答案 如
刚刚开始使用 Sequelize 并尝试在 SQLite 数据库上设置自动增量列。迁移如下所示: return queryInterface.createTable('Users', { id:
假设我有 1000 万个客户名称,每个名称都与一个或多个地址相关联,我想将数据放入 SQL 数据库中。 我创建了一个 Customer 表和一个 Address 表。 Customer 表包含一个自动
嘿,我制作了一个完整的应用程序,但没有添加自动增量列,但现在我需要此列来指定最大 ID,所以我在我的主 Activity 中创建了我的数据库,就像这样。我如何修改它以添加自动增量 _id 列? db
学习 phonegap 以编写适用于 Android 的基本应用程序。出于这个原因使用 WebSQL,我知道它已被弃用,但它仅适用于 Android 手机且无法缩放,因此此时不会为 polyfill
我是一名优秀的程序员,十分优秀!