插入该行时,如何将自动增量值(主键列)用作同一行中另一列的一部分?

How can I use the auto increment value (primary key column) as part of another column in the same row when inserting that row?

我正在向 table 中插入一个新行。是否可以在插入期间将主键 (id) 用作同一行中列值的一部分?例如,假设我刚刚插入了一个 id 为 6 的新行,是否可以让同一行中的 image_address 列类似于 "folder/6",其中 6 来自 id?这是在 INSERT 上。

TABLE
id(主键,自增)
image_address(我希望在其中包含 id)

您可以在 INSERT 之后放置一个触发器,它会更新 image_address 并使用新的 ID。 但是,当您可以随时以编程方式重新创建 'folder/6' 路径时,您真的为什么要这样做?您可以在脚本或 select 中执行此操作。例如:

SELECT id, CONCAT('folder/',id,'/') as path FROM table

正如其他人所指出的,您可以在以后的调用中以编程方式使用 ID,这可能更有效。

但是,假设您仍然想这样做(也许您稍后会将其加入其他数据,或者与一些不懂数据的人一起使用,等等)。

我会在两个命令中执行此操作。

首先,运行 您的插入以生成 ID,并填写 'folder/' 作为 image_address 列的静态值。

其次,运行 对新形成的 table 进行 UPDATE 查询(或者如果您只是向现有的 table 添加行,则可以 UPDATE WHERE image_address = 'folder/'),在此更新中,您可以修改 image_address 字段,方法是将其与 id.

连接起来