一个简单的MySQL问题:
我有两个名为“Interfaces”和“Switch”的表。
表格“切换”:
create table switch (
name varchar(15),
swversion varchar(15),
bootversion varchar(15),
serialnumber varchar(30),
rootbridge varchar(10),
address varchar(20),
switch_id MEDIUMINT NOT NULL AUTO_INCREMENT,
PRIMARY KEY(switch_id));
表格“接口”:
create table interfaces (
port varchar(15),
type varchar(20),
duplex varchar(15),
speed varchar(5),
neg varchar(20),
flowctrl varchar(5),
linkstat varchar(5),
backpres varchar(20),
mdixmode varchar(5),
switch_id int(11),
PRIMARY KEY(port));
我想将表“Switch”中的switch_id放入“接口”表中的switch_id。
在这个例子中:每个带端口的交换机:“Switch2 _...”应该得到Switch_id:1“,”Switch5 _...“应该得到Switch_id:2,依此类推。
http://img51.imageshack.us/img51/4470/switchid.png
“Interfaces”中的switch_id应该使用表“Switch”中的switch_id自动更新
答案 0 :(得分:0)
试试这个
INSERT INTO Interfaces(switch_id)
SELECT switch_id
FROM Switch WHERE......
答案 1 :(得分:0)
这将是模棱两可的 - 你有两个名为“switch2”的开关:id值为1和4.那么你希望id 1或id 4与名为“switch2”的开关相关联吗?
更好的方法是改变填充表格的方式。首先创建一个开关,使用last_insert_id()找出它的id,然后在添加接口的所有记录时将该值用作switch_id。然后你不必再回去修理 - 你从一开始就在正确的位置得到正确的值。