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

时间:2017-09-12 20:08:26

标签: mysql sql concatenation auto-increment

我在表格中插入一个新行。是否可以在插入期间使用主键(id)作为同一行中列的值的一部分?例如,假设我刚刚插入了一个id为6的新行,是否可以将同一行中的image_address列设置为“folder / 6”,其中6来自id?这是一个INSERT。

表格
id(主键,自动增量)
image_address(我希望在其中包含id)

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

但是,让我们想象你仍然想要这样做(也许你以后会把它加入到其他数据中,或者将它与一些非数据精明的人一起使用,无论如何)。

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

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

其次,对新创建的表运行UPDATE查询(或者如果您只是向现有表添加行,则可以UPDATE WHERE image_address = 'folder/'),在此更新中,您可以通过将image_addressid连接来修改{{1}}字段。