sql – 使用liquibase标签将最大列值设置为序列起始值
发布时间:2020-12-12 08:47:50 所属栏目:MsSql教程 来源:网络整理
导读:我不知道是否可以从某个表获取最大列值,并将其设置为没有纯sql的起始序列值.以下代码不起作用: property name="maxId" value="(select max(id)+1 from some_table)" dbms="h2,mysql,postgres"/ changeSet author="author (generated)" id="1447943899053-1"
我不知道是否可以从某个表获取最大列值,并将其设置为没有纯sql的起始序列值.以下代码不起作用:
<property name="maxId" value="(select max(id)+1 from some_table)" dbms="h2,mysql,postgres"/> <changeSet author="author (generated)" id="1447943899053-1"> <createSequence sequenceName="id_seq" startValue="${maxId}" incrementBy="1"/> </changeSet> 有错误: Caused by: liquibase.parser.core.ParsedNodeException: java.lang.NumberFormatException: For input string: "${m" 我已经尝试了没有括号在选择…等等与相同的结果. 解决方法所以,这样的解决方案对我有用:<changeSet author="dfche" id="1448634241199-1"> <createSequence sequenceName="user_id_seq" startValue="1" incrementBy="1"/> </changeSet> <changeSet author="dfche" id="1448634241199-2"> <sql dbms="postgresql">select setval('user_id_seq',max(id)+1) from jhi_user</sql> <sql dbms="h2">alter sequence user_id_seq restart with (select max(id)+1 from jhi_user)</sql> </changeSet> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- SQLServer2005 创建矢集快照数据库基本要素
- SQL Server 2008的逻辑查询处理步骤
- sql – 在Teradata中检索列和其他元数据信息
- sql 取两值之间的数据方法(例:100-200之间的数据)
- sql-server-ce – SQL Server CE(精简版)中的数据分页
- sql-server – 在完成执行后如何检查SSIS包的作业结果?
- 字符串处理(模糊无序搜索)
- sqlserver 存储过程带事务 拼接id 返回值
- sqlserver float小数存数据库变成多位了 比如说12.23存进去
- The service did not start due to a logon failure