1

我刚刚遇到一种情况,我需要在另一列中复制每个新行的唯一(自动递增)ID。所以我想知道,而不是用老式的方式来做:

  1. 插入行
  2. 获取 insert_id
  3. 使用 insert_id 更新行

我可以告诉 MySQL 使用要设置新 id 的相同值作为另一列的值吗?

沿着这条线的东西:

INSERT INTO my_table(unique_column, id_duplicate) 
VALUES('value', GET_UNIQUE_ID_OF_THIS() )
4

1 回答 1

0

在单个查询中使用自动增量列无法完成您尝试完成的任务。

尝试从另一个方向接近它。假设您的自动增量列是id,而您的另一列称为other_id。您可以将other_id列设置为允许 NULL,并简单地将其值设置为 NULL 以进行初始插入。

然后,当您查询该值时,只需执行以下操作:

SELECT id, IFNULL(other_id, id) AS other_id FROM mytable

最终结果是一样的。如果你有反对 NULL 的东西,你也可以使用 0 作为默认值,因为自动增量值从 1 开始。

于 2012-08-28T12:33:49.577 回答