0

在 MySQL 数据库上工作,我需要将几百(几千)行输入到一个表中,其中部分数据来自第二个表。

基本上,senario是:

我有一个表,其中包含以下示例的值:

SELECT DISTINCT object_id FROM table1 WHERE reference = 'ABC123';

返回说 3 个值:12345 67890 66699

我需要将 table1 中的 3 行插入 table2:

INSERT INTO table2 
(tbl2_unique_id, tbl1_obj_id,object_date) 
VALUES 
(XXXXXX,YYYYYY,NOW());

但...

XXXXXX 是从“475611”开始的递增数字(我不能让它成为 auto_incremental)(这恰好是 table2 中的最后一个值)。

每行的 YYYYYY 是 '12345',67890','66699'

给你

table2
---------------------------------
tbl2_unique_id, tbl1_obj_id, object_date
---------------------------------
475611         , 12345,  YYYY-MM-DD HH:MM:SS
475612         , 67890,  YYYY-MM-DD HH:MM:SS
475613         , 66699,  YYYY-MM-DD HH:MM:SS

有什么建议吗?

提前喝彩

KS

4

2 回答 2

2

您可以使用INSERT INTO...SELECT...FROM

INSERT INTO table2 (tbl1_obj_id,object_date) 
select DISTINCT object_id, NOW()
FROM table1 
WHERE reference = 'ABC123'

你会注意到我排除了它,tbl2_unique_id因为它是自动递增的,你可以排除它,因为在插入它之前你不会有一个值。

于 2013-05-15T20:05:12.593 回答
1

例子:

INSERT INTO orders (customer_cust_id, orderdatetime, message, taxrate, shippingprice)
SELECT '1', NOW(), null, taxrate, shippingprice FROM customer
WHERE cust_id='1';

http://dev.mysql.com/doc/refman/5.1/en/insert-select.html

于 2013-05-15T20:06:47.330 回答