【问题标题】:How to get the ID of new row in SQL?如何在 SQL 中获取新行的 ID?
【发布时间】:2021-07-03 09:08:51
【问题描述】:

我想用它的 ID 填充一个格式的列。

我的桌子:

CREATE TABLE "TEST" 
(
    "ID"    INTEGER,
    "Formatted_Column"  TEXT,
    PRIMARY KEY("ID" AUTOINCREMENT)
);

我想做:

INSERT INTO TEST (Formatted_Column) VALUES ('U' + this_ID);

INSERT INTO TEST (Formatted_Column) VALUES ('U' + this_ID);

我希望输出是:

ID Formatted_Column
1 U1
2 U2

什么方法可以帮到我?

注意:我尝试使用last_insert_rowid()+1,但我认为这是一种意大利面条代码(:.

我的数据库目前是 SQLite,但我稍后会更改为 MySQL 或 SQL Server。

我将使用多用户在线数据库。

谢谢

【问题讨论】:

标签: sql sqlite generated-columns


【解决方案1】:

如果您的 SQLite 版本是 3.31.0+,您可以将 Formatted_Column 定义为 generated column:VIRTUALSTORED):

CREATE TABLE "TEST" (
  "ID" INTEGER,
  "Formatted_Column" TEXT GENERATED ALWAYS AS ('U' || ID) STORED,
  PRIMARY KEY("ID" AUTOINCREMENT)
);

插入 2 行后:

INSERT INTO TEST (ID) VALUES (NULL), (NULL);

你将拥有:

ID Formatted_Column
1 U1
2 U2

【讨论】:

    猜你喜欢
    • 2013-12-09
    • 2011-08-13
    • 1970-01-01
    • 2014-02-17
    • 2011-06-28
    • 2015-10-17
    • 2020-10-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多