插入该行时,如何将自动增量值(主键列)用作同一行中另一列的一部分?
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
.
连接起来
我正在向 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
.