gpt4 book ai didi

mysql - 是否可以通过主键合并两个表?

转载 作者:可可西里 更新时间:2023-11-01 08:34:41 24 4
gpt4 key购买 nike

我有两个表,我需要合并它们,它们是:

CREATE TABLE IF NOT EXISTS `legacy_bookmarks` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`url` text,
`title` text,
`snippet` text,
`datetime` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `datetime` (`datetime`),
FULLTEXT KEY `title` (`title`,`snippet`)
)

和:

CREATE TABLE IF NOT EXISTS `legacy_links` (
`id` mediumint(11) NOT NULL AUTO_INCREMENT,
`user_id` mediumint(11) NOT NULL,
`bookmark_id` int(11) NOT NULL,
`status` enum('public','private') NOT NULL DEFAULT 'public',
UNIQUE KEY `id` (`id`),
KEY `bookmark_id` (`bookmark_id`)
)

如您所见,“legacy_links”包含“legacy_bookmarks”的 ID。我可以根据这种关系将两者合并吗?

我可以轻松地将“legacy_bookmarks”中 ID 列的名称更改为“bookmark_id”,如果这能让事情变得更容易的话。

如您所知,列的顺序及其类型必须准确无误,因为此组合表中的数据随后将导入到新的“书签”表中。

另外,我需要能够包含额外的列(“修改”列,填充有“日期时间”值),并更改我拥有的列的顺序。

有人要吗?

最佳答案

[由您更改列的顺序]

CREATE TABLE `legacy_linkss` AS
SELECT l.id, l.url, l.title, l.snippet, l.datetime AS modification, b.user_id, b.status
FROM
`legacy_links` l
JOIN `legacy_bookmarks` b ON b.id = l.bookmark_id
;

之后,在检查一致性并手动添加约束后,您可以:

DROP TABLE `legacy_links`;
DROP TABLE `legacy_bookmarks`;
RENAME TABLE `legacy_linkss` TO `legacy_links`;

关于mysql - 是否可以通过主键合并两个表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16406554/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com