使用触发器自动递增
我正在尝试解决 sqlite 中的组合键不允许自动增量的问题。
我不知道这是否可能,但我试图将最后使用的 id 存储在不同的表中,并在插入新记录时使用触发器分配下一个 id。
我必须使用复合键,因为单个 pk 不会是唯一的(因为数据库合并)。
如何根据不同表中的值设置要插入的行的字段
到目前为止的查询是:
CREATE TRIGGER pk BEFORE INSERT ON product_order
BEGIN
UPDATE auto_increment SET value = value + 1 WHERE `table_name` = "product_order";
END
这成功更新了值。但现在我需要将该新值分配给新记录。 (新的.id)。
I'm trying to solve the problem that composite keys in sqlite don't allow autoincrement.
I don't know if it's possible at all, but I was trying to store the last used id in a different table, and use a trigger to assign the next id when inserting a new reccord.
I have to use composite keys, because a single pk wouldn't be unique (because of database merging).
How can I set a field of the row being inserted based on a value in a different table
The query so far is:
CREATE TRIGGER pk BEFORE INSERT ON product_order
BEGIN
UPDATE auto_increment SET value = value + 1 WHERE `table_name` = "product_order";
END
This successfully updates the value. But now I need to assign that new value to the new record. (new.id).
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
如果您使用
AFTER INSERT
触发器,则可以更新新插入的行,如下例所示。If you use an
AFTER INSERT
trigger then you can update the newly inserted row, as in the following example.