如何获取 SQL 中新行的 ID?

How to get the ID of new row in SQL?

我想用使用其 ID 的格式填充列。

我的table:

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 服务器。

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

谢谢

如果您的 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