如果我的ID是连续的,我如何使用Liquibase为PostgreSQL进行插入。我尝试以下几点:
<changeSet author="rparente" id="service-1.1-2019-01-09-01">
<insert tableName="tenant">
<column name="id"defaultValueSequenceNext="hibernate_sequence"/>
<column name="description" value="Prueba"/>
<column name="name" value="antel"/>
<column name="service_id" value="antel"/>
</insert>
</changeSet>
我试着
<changeSet author="rparente" id="service-1.1-2019-01-09-01">
<insert tableName="tenant">
<column name="id" value="nextval('hibernate_sequence')"/>
<column name="description" value="Prueba"/>
<column name="name" value="antel"/>
<column name="service_id" value="antel"/>
</insert>
</changeSet>
错误是:
错误:列“id”中的空值违反了非空约束
查看“ColumnConfig”文档。您应该能够设置valueComputed属性,并在其中调用Postgres函数:
<column name="id" valueComputed="nextval('hibernate_sequence')"/>
对于我来说,我必须先创建一个序列,然后使用它。
<changeSet>
<createSequence sequenceName="runtime_name_seq" dataType="bigint" incrementBy="1" maxValue="10000" minValue="1" startValue="1"/>
</changeSet>
<changeSet>
<createTable tableName="runtime_name">
<column name="id" type="INTEGER" defaultValueComputed="nextval('runtime_name_seq')">
<constraints nullable="false" primaryKey="true" primaryKeyName="pk_runtime_name"/>
</column>
</createTable>
</changeSet>
这将通过Liquibase创建SQL(我使用的是v3.8.1)
CREATE TABLE public.runtime_name
(
index INTEGER DEFAULT nextval('runtime_name_seq') NOT NULL
)
我找到了在Postgres中使用序列(无默认)ID插入数据的解决方案
<changeSet author="author_name" id="service-1.1-2019-01-09-01">
<insert tableName="tenant">
<column name="id" valueSequenceNext="name_sequence"/>
<column name="description" value="TEST"/>
<column name="name" value="test"/>
<column name="service_id" value="testl"/>
<column name="status" value="ACTIVE"/>
</insert>
</changeSet>
问题内容: 我有两个表声明如下: 我想用一些值填充liquibase changelog文件中的两个表: 在此示例中,由于简单起见,我使用了aaaa和bbbb。我想通过DBMS生成那些UUID。 最好的方法是什么?我必须在变更日志文件中使用SQL还是可以在XML中使用?我更喜欢DBMS独立解决方案,例如XML或JSON。 我的第二个问题是,如何声明带有UUID的列,该列会在插入时创建UUID。就像
我们使用liquibase来管理MySQL数据库的更新、回滚等。 我遇到的一个小好奇是在更新或回滚过程中将值设置为null的过程。示例: 起初,我有点担心“null”会直接插入字符串“null”,但事实证明,liquibase似乎很聪明,可以插入一个空值。
问题内容: 我找不到用Clojure插入Postgres数组类型的方法。 没按我预期的那样工作。错误信息: 即使是我能找到的对SQL的最直接访问也不起作用: 真的不知道这是怎么回事: 当然一定有可能吗?如果不是通过辅助函数,则通过某种方式执行原始SQL。 问题答案: 使用 插入! 要插入字符串向量,您必须(从字符串向量中)创建一个实现java.sql.Array的对象。您可以使用java.sql.
问题内容: 我在使用SQL时遇到了一些问题。我正在尝试在表中插入2个值。 那就是我的查询:INSERT INTO tableinfo(table,date)VALUES(’Sell’,’August‘24’); 但它不起作用。我有类似的东西: 这是非常基本的,所以我不知道为什么它不起作用:( PostgreSQL 9.2.4 问题答案: 问题不是出自INSERT,而是您要发出的无效SQL。首先尝试
本文向大家介绍使用Postgresql 实现快速插入测试数据,包括了使用Postgresql 实现快速插入测试数据的使用技巧和注意事项,需要的朋友参考一下 1.创建常规的企业信息表 2.需要使用的函数 3.常规测试数据插入(5000000条) 在普通pc机上插入,大概完成时间约8小时,过程不可监控,并且cpu/内存占用率高,磁盘基本满负荷动作,读写率基本上都是100%. 4.改进后的方法, 插入(
问题内容: 我正在尝试在postgres中执行以下操作: 但是,即使使用文档(http://www.postgresql.org/docs/9.0/static/sql- update.html )中提到的postgres 9.0,也无法实现第1点 同样,第二点似乎不起作用。我收到以下错误:子查询必须仅返回一列。 希望有人对我有解决方法。否则查询将花费大量时间:(。 仅供参考:我正在尝试从几张表中