如何获取 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
:(VIRTUAL
或 STORED
):
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
我想用使用其 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
:(VIRTUAL
或 STORED
):
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