【发布时间】:2016-10-20 07:03:00
【问题描述】:
我有两个表,其列如下所示:
表_1:
key | value
1 | apple
2 | banana
3 | carrot
Table_2:
sub_index | value
使用存储过程,我想使用 INSERT...SELECT 将 Table_1 中的行插入到 Table_2 中,这样每次执行查询时,sub_index 从 1 开始。
例如,在我第一次运行查询
INSERT INTO TABLE_2 (value) SELECT value FROM TABLE_1 WHERE key=2之后
Table_2 应如下所示:
sub_index | value
1 | banana
然后如果我运行另一个查询
INSERT INTO TABLE_2 (value) SELECT value FROM TABLE_1 WHERE key < 4
Table_2 现在将如下所示:
sub_index | value
1 | banana
1 | apple
2 | banana
3 | carrot
如果我运行进一步的查询
INSERT INTO TABLE_2 (value) SELECT value FROM TABLE_1 WHERE key <= 2
Table_2 现在将如下所示:
sub_index | value
1 | banana
1 | apple
2 | banana
3 | carrot
1 | apple
2 | banana
换句话说,每次我运行查询时,我都希望sub_index 字段从 1 开始,并为查询插入的每条记录递增。
如何仅使用 SQL 为 sub_index 实现此行为? (即不使用 PHP 编程。)
感谢您的任何建议!
【问题讨论】:
-
你试过了吗??
-
我已经澄清了这个问题。每次运行查询时,我都希望 sub_index 字段从 1 开始。
-
为什么要存储这些派生数据?
标签: mysql