gpt4 book ai didi

mysql - 如何遍历值并将它们插入数据库

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

如何遍历值并将它们插入数据库。具体来说,我正在做的是:我有一张年表,我希望它看起来像这样:

years
id name
1 2015*
2 2014
3 2013
etc etc

(这里使用 2015 年是因为这个问题是在 2014 年提出的,我想将第一个字段作为当前年份的下一年 - 例如 - 如果你在 2020 年阅读这个问题,第一行应该2021 年)。

id 字段是 auto_incremented,经过一番搜索后我试过了......

CREATE PROCEDURE `vehicle_years_data()`
BEGIN
DECLARE i INT DEFAULT YEAR(CURDATE()) + 1;
WHILE (i >= 1900) DO
INSERT INTO `vehicle_years` (`name`) VALUE(CONVERT(i, VARCHAR(255));
SET i = i - 1;
END WHILE
END$$

DELIMITER ;

CALL `vehicle_years_data()`;

DROP PROCEDURE `vehicle_years_data()`;

但这给了我:

You have an error in your SQL syntax; check the
BEGIN DECLARE i INT DEFAULT YEAR(CUR' at line 10

我知道执行此操作的静态方法是简单地

INSERT INTO `vehicle_years` (`name`) VALUES
(2015), (2014), (2013), ...

但这不仅更乏味,而且我无法动态地从当年加一年开始。

如有任何帮助,我们将不胜感激。

最佳答案

这里有几个问题

  1. varchar 不是 convert 的有效类型。 char
  2. 不要在名称周围的引号中包含括号
  3. while 结束后需要一个分号

代码示例:

create procedure `vehicle_years_data`()
begin
declare i int default year(curdate()) + 1;
while (i >= 1900) do
insert into `vehicle_years` (`name`) value (convert(i, char(255)));
set i = i - 1;
end while;
end//

Example SQLFiddle

关于mysql - 如何遍历值并将它们插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25941546/

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