将所有内容移至除 id 之外的另一个表 [重复]
Posted
技术标签:
【中文标题】将所有内容移至除 id 之外的另一个表 [重复]【英文标题】:move all to another table except id [duplicate] 【发布时间】:2018-01-25 13:15:18 【问题描述】:将记录从posts
移动到archive
$stmt = $db->prepare(
"insert into archive (date, art, img, vid, title, subtitle, story, tags, status, user, pos, titlex, inde)
select date, art, img, vid, title, subtitle, story, tags, status, user, pos, titlex, inde from posts
where id = :aid"
);
不要告诉我没有类似的选项:move * except id...
id
不可移动,因为可能与存档 ID 发生冲突。
【问题讨论】:
只是想知道,你为什么想要这个。如果需要,可以使用 join 获取数据? @Shadow 除非我完全误读了这个问题,否则它与您将其标记为重复的问题完全不同。 @user2486,我不想get
,而是move
数据。
@Shadows,请仔细阅读我的帖子。
Move 是一个insert ... select ...
语句,因此重复应用。
【参考方案1】:
没有像move
这样的选项。您需要将其插入到一个表中,然后从另一个表中删除。
不过,您可能需要重新考虑您的餐桌设计。如果您想要归档某些内容,而不是让两个单独的表包含相同类型的数据,您应该在 posts
表中添加一个标志以指示条目是否已归档。像这样的:
ALTER TABLE posts ADD archived BOOLEAN DEFAULT 0;
当帖子正常添加但未存档时,archived
列设置为 0。当您想要存档某些内容时,只需运行 UPDATE
语句,将该记录设置为 1。
【讨论】:
以上是关于将所有内容移至除 id 之外的另一个表 [重复]的主要内容,如果未能解决你的问题,请参考以下文章