作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
如何遍历值并将它们插入数据库。具体来说,我正在做的是:我有一张年表,我希望它看起来像这样:
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), ...
但这不仅更乏味,而且我无法动态地从当年加一年开始。
如有任何帮助,我们将不胜感激。
最佳答案
这里有几个问题
varchar
不是 convert
的有效类型。 char
是代码示例:
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//
关于mysql - 如何遍历值并将它们插入数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25941546/
我是一名优秀的程序员,十分优秀!