私は2つのテーブルを持っています:
CREATE TABLE `data_items` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`data` longtext NOT NULL,
`created` datetime NOT NULL,
`updated` datetime NOT NULL,
`data_item_type` varchar(255) NOT NULL,
`data_source_id` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `IDX_AFA125D21A935C57` (`data_source_id`),
CONSTRAINT `FK_AFA125D21A935C57` FOREIGN KEY (`data_source_id`) REFERENCES `data_sources` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7192 DEFAULT CHARSET=utf8;
と
CREATE TABLE `map_locations` (
`id` int(11) NOT NULL,
`latitude` decimal(9,6) DEFAULT NULL,
`longitude` decimal(9,6) DEFAULT NULL,
`name` varchar(255) DEFAULT NULL,
`address` varchar(255) DEFAULT NULL,
`status` varchar(255) NOT NULL,
`message_codes` longtext NOT NULL,
PRIMARY KEY (`id`),
CONSTRAINT `FK_B28E0DE7BF396750` FOREIGN KEY (`id`) REFERENCES `data_items` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
私は2段階のプロセスを達成しようとしています。最初のクエリは正常に機能します。
INSERT INTO data_items (`data`, created, updated, data_item_type, data_source_id) SELECT data_items.data, now(), now(), data_items.data_item_type, 2
FROM data_items
WHERE data_items.data_source_id = 1
--> 1 と 2 は値の例です
ここで、「data_items」(作成されたばかりの auto-inc) からすべての ID を取得し、「map_locations」テーブルに新しい (対応する行) を挿入するときにそれらの ID を使用したいと考えています。
そう、
data_items
id | data_source_id
1 | 1
2 | 1
3 | 2
4 | 2
map_locations
id | content
1 | aaa
2 | bbb
....
3 | aaa
4 | bbb
行 (1, 2) をコピーし、data_items (3,4) の ID を使用して、それらの行を挿入する必要があります。
これが理にかなっていることを願っています..かなり混乱しています。ティア。