gpt4 book ai didi

mysql - 将带有月份名称的 mysql 数据迁移到新结构

转载 作者:行者123 更新时间:2023-11-29 16:15:30 25 4
gpt4 key购买 nike

CREATE TABLE `monthly1` (
`id` int(255) NOT NULL,
`year` int(255) NOT NULL,
`stat_id` varchar(255) NOT NULL,
`cat_id` varchar(255) NOT NULL,
`january` varchar(255) NOT NULL,
`february` varchar(255) NOT NULL,
`march` varchar(255) NOT NULL,
`april` varchar(255) NOT NULL,
`may` varchar(255) NOT NULL,
`june` varchar(255) NOT NULL,
`july` varchar(255) NOT NULL,
`august` varchar(255) NOT NULL,
`september` varchar(255) NOT NULL,
`october` varchar(255) NOT NULL,
`november` varchar(255) NOT NULL,
`december` varchar(255) NOT NULL,
);

嗨,我有一个现有的 mysql 数据,其结构如上,我想将数据迁移到一个新的结构,如下面的结构

CREATE TABLE `monthly2` (
`id` int(255) NOT NULL AUTO_INCREMENT,
`year` int(255) NOT NULL,
`stat_id` varchar(255) NOT NULL,
`cat_id` int(11) NOT NULL,
`monthName` varchar(255) NOT NULL,
`monthlydata` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
);

我如何正确创建插入查询来执行此操作..我尝试了下面的查询,但如何将 MonthName 设置为月份名称(一月)而不是一月数据?

INSERT INTO `monthly2` (`year`, `stat_id`, `cat_id`, `monthName`, `monthlydata`)
select `year`,`stat_id`,`cat_id`, `january`, `january`
from `monthly1 WHERE year >= '2010' AND year < '2018'

最佳答案

首先,将表monthly1中的年份列设置为int。

使用以下查询在另一个表中插入记录:-

INSERT INTO 
monthly2
(SELECT `id`,`year`,`stat_id`,`cat_id`, 'january', `january` FROM monthly1
WHERE year >= 2010 AND year < 2018);

仅供引用

我必须删除:-

ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

用于测试。

关于mysql - 将带有月份名称的 mysql 数据迁移到新结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54839545/

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