我有表 step_year :id,step_id,year
我想要复制所有年份= 1011的行(从年份= 1011的step_year中选择*),但不是那些新创建的行具有相同年份(1011),我想将其更改为1112。
感谢任何帮助。
答案 0 :(得分:1)
您可以根据INSERT
执行SELECT
,但请指定年份而不是从查询中提取
INSERT INTO `step_year` (`id`, `step_id`, `year`)
SELECT `id`, `step_id`, 1112 AS `year`
FROM `step_year` where `year` = 1011
此语法适用于MySQL,但应适用于大多数数据库。
答案 1 :(得分:1)
如果您的数据库支持它:
INSERT INTO step_year
(id, step_id, year)
SELECT sub_year.id, sub_year.step_id, 1112
FROM step_year sub_year
WHERE sub_year.year = 1011
答案 2 :(得分:1)
insert into step_year(id, step_id,year)
select id,step_id,1112 from step_year where year = 1011
答案 3 :(得分:1)
如果id字段是自动增量,请使用此
INSERT INTO step_year(step_id,year)
SELECT step_id, 1112 FROM step_year WHERE year = 1011
如果id字段不是自动增量
INSERT INTO step_year(id, step_id, year)
SELECT ROW_NUMBER() OVER(ORDER BY id) + COUNT(year) id, step_id, 1112 FROM step_year WHERE year = 1011