我需要重构公司表,以便将地址信息移入专用地址表。从另一个表插入然后按ID链接表
所以我想我需要做这样的事情来创建新的地址记录。
INSERT INTO address (city, country, ...)
SELECT city,country, ... FROM company
但是,如何使用新创建的地址记录的ID更新公司表以保持参照完整性?
有几个重复的地址,所以我不能只是加入的城市,国家字段等
UPDATE
正如克林斯曼d提到,我得到了这一轮的方法是创建一个临时的在地址表中的company_id列:
ALTER TABLE address ADD company_id INTEGER
INSERT INTO address (city,country,company_id)
SELECT city,country,id from company
UPDATE company c set c.address_id = (select a.id from address a where a.company_id = c.id)
ALTER TABLE address DROP COLUMN company_id;
之后使用'SELECT LAST_INSERT_ID()'获取新记录的ID –
将LAST_INSERT_ID()不只是给我由语句插入的最后一条记录的ID,无论已插入多少条记录? – beterthanlife
是的,我误解了你的问题。 –