Php 需要在复制时使用新PK更新FK
我有两张桌子——今晚我真的相信我有一个金发女郎的时刻 标题 副标题 我想做的是复制标题和副标题中的所有条目,其中Php 需要在复制时使用新PK更新FK,php,mysql,foreign-keys,primary-key,Php,Mysql,Foreign Keys,Primary Key,我有两张桌子——今晚我真的相信我有一个金发女郎的时刻 标题 副标题 我想做的是复制标题和副标题中的所有条目,其中TopicID=1到=2 我写过: INSERT INTO Headings (HeadingName, TopicID) SELECT HeadingName, 2 FROM Headings WHERE TopicID = 1 //(Duplicating Headings and assigning TopicID 2). 我被困在副标题上了;我想输入刚刚创建的新的Headi
TopicID
=1到=2
我写过:
INSERT INTO Headings (HeadingName, TopicID)
SELECT HeadingName, 2 FROM Headings WHERE TopicID = 1 //(Duplicating Headings and assigning TopicID 2).
我被困在副标题上了
;我想输入刚刚创建的新的HeadingID
,我不知道。我可以用相同的Insert/Select语句来处理其余字段,但我还是被难住了
有人能帮我举个例子或一些文档吗
简化数据如下所示:
HeadingID = 1
HeadingName = 'News'
TopicID = 1
HeadingID = 2
HeadingName = 'Sport'
TopicID = 1
SubHeadingID = 1
SubHeadingName = 'Local'
HeadingID = 1
SubHeadingID = 2
SubHeadingName = 'National'
HeadingID = 1
SubHeadingID = 3
SubHeadingName = 'International'
HeadingID = 1
SubHeadingID = 4
SubHeadingName = 'Baseball'
HeadingID = 2
SubHeadingID = 5
SubHeadingName = 'Cricket'
HeadingID = 2
以下查询将帮助您:)
@jetgrrrl请让我知道上面的答案是否有帮助。谢谢OMG,我会在我醒来时测试它:DHi OMG,你的建议不起作用,但是加入给了我另一个想法(插入内联选择以获得headingid),我可以从那里得到:)谢谢!
INSERT INTO Headings (HeadingName, TopicID)
SELECT HeadingName, 2 FROM Headings WHERE TopicID = 1 //(Duplicating Headings and assigning TopicID 2).
HeadingID = 1
HeadingName = 'News'
TopicID = 1
HeadingID = 2
HeadingName = 'Sport'
TopicID = 1
SubHeadingID = 1
SubHeadingName = 'Local'
HeadingID = 1
SubHeadingID = 2
SubHeadingName = 'National'
HeadingID = 1
SubHeadingID = 3
SubHeadingName = 'International'
HeadingID = 1
SubHeadingID = 4
SubHeadingName = 'Baseball'
HeadingID = 2
SubHeadingID = 5
SubHeadingName = 'Cricket'
HeadingID = 2
INSERT INTO SubHeadings (SubHeadingName, HeadingID)
SELECT subhdng.SubHeadingName, hdng.HeadingID
FROM Headings hdng
INNER JOIN SubHeadings subhdng ON hdng.HeadingID = subhdng.HeadingID
WHERE hdng.TopicID = 2