复制相关的MySQL表。我有一个表,有相关的表,我想有一个功能来复制该批

时间:2011-07-08 10:09:42

标签: mysql

好的就是这件事。

我有一个MySQL数据库,其中有这些表

Cruises
Fares
Itinerary
Supplements

在网站的管理面板中,我正在添加一项功能来复制整个游轮,以及相关的票价,行程和补充数据

所以第一个表'Cruises'有一个主键(ID),并且在其他每个表中都被选为'cruise_id'

E.g。

Cruises
-------
id
destination
departs
returns
nights

Fares
-----
id
cruise_id
fare
offer
active

Itinerary
---------
id
cruise_id
port
type

Supplements
-----------
id
cruise_id
sharing
deposit

因此,当用户在管理面板中时,他们会看到现有游轮的列表以及要复制的链接

当用户点击复制游轮时,我想添加一个新的“游轮”,复制他们选择的游轮数据

现在我可以使用INSERT SELECT。但是,我也想制作票价,行程和补充的副本,这样就可以复制整套数据,以便稍后进行细微的修改。

逻辑上(这显然不是MySQL语法)我想这样做

从邮轮,票价,行程,补充表中选择所有内容

其中Cruise(id)等于所选巡航(在链接上传递的url参数)

票价,行程,补充(cruise_id)等于所选巡航(链接上传递的url参数)

获取该数据并将巡航场插入游轮,票价,行程安排和补充剂补充

我知道我想做什么,问题是我可以,以及如何?

1 个答案:

答案 0 :(得分:0)

我认为您可以使用INSERT SELECT插入faresitinerarysupplements。类似的东西:

INSERT INTO `Fares` (`cruise_id`, `fare`, `offer`, `active`)
SELECT `cruise_id`, `fare`, `offer`, `active`
FROM `Fares`
WHERE `cruise_id` = xx;

INSERT INTO `Itinerary` (`cruise_id`, `port`, `type`)
SELECT `cruise_id`, `port`, `type`
FROM `Itinerary`
WHERE `cruise_id` = xx;

INSERT INTO `Supplements` (`cruise_id`, `sharing`, `deposit`)
SELECT `cruise_id`, `sharing`, `deposit`
FROM `Supplements`
WHERE `cruise_id` = xx;

其中,xx应替换为所选巡航的id。

希望这有帮助。