sql - SQL 序列查询下一个值总是最后一个值 + 10
问题描述
我创建了一个 SQL 查询,它创建了一个始终比上次使用的值高 10 的新数字(例如,如果添加了一家新公司,那么公司一的数字为 10,该公司将获得数字 20)。
但我得到一个错误,我不知道为什么它不会执行。
我的查询是:
CREATE SEQUENCE anr_num_gen
START WITH anr = UPPER(anr)
INCREMENT BY 10;
但我得到这个错误:
bedrijf.public> 创建序列 anr_num_gen
以 anr = UPPER(anr) 开始,
递增 10[2021-09-13 22:51:28] [42601] 错误:“anr”处或附近的语法错误
[2021-09-13 22:51:28] 位置:50
有人能帮助我吗?
解决方案
该start with
部分无效。anr
在这个地方没有定义。你期望它来自哪里?
你可能只是想要这个:
CREATE sequence anr_num_gen
start with 1
increment by 10;
或者,也许您正在查看anr
特定表中的列。在这种情况下,您必须分两步进行:
CREATE sequence anr_num_gen
start with 1
increment by 10;
SELECT setval(
'anr_num_gen'::regclass,
(SELECT MAX(anr)::bigint FROM "my_table")
);
推荐阅读
- java - 无法构建 Spring maven 项目,POM.XMl 文件中的问题
- xcode - 如何使用 fastlane 重置特定 Xcode 版本的模拟器?
- elm - 匹配 Elm 记录类型的 `.foo` getter 的等效设置器
- jquery - 如果宽度为一定大小,jQuery会停止自定义函数的工作
- bash - 如何在 shell 中格式化日期
- locking - Gnome 库读/写锁实现
- python - 从 groupby 函数中选择组
- php - 将mysql转换为mysqli函数并获取参数错误
- ruby-on-rails - 使用 capistrano 进行部署时始终将环境显示为生产环境
- spring - 无法在 Eclipse Neon.3 上安装 Spring STS 和微服务插件