标签: ddl

使用SQL查询在Postgresql中获取函数,序列,类型等的定义

我需要PostgreSQL数据库对象的创建脚本.

我无法访问pg_dump.所以我必须通过SQL查询获得所有内容.我怎么能这样做?

sql postgresql ddl

16
推荐指数
3
解决办法
2万
查看次数

DDL语句是否总是为您提供隐式提交,或者您是否可以获得隐式回滚?

如果您正在进行事务处理并执行DDL语句(例如截断表),那么事务将提交.

我想知道这是否总是如此,按照定义,或者是否有隐藏某个地方的设置会回滚事务而不是提交.

谢谢.

编辑澄清......

我不打算在截断后回滚.我只想确认已经执行的语句绝对会在DDL之前提交.只是想确保某个地方没有系统属性,有人可能会设置破坏我的代码.

据我所知,之前需要和DDL之后提交,但在概念上我还以为同样的一致性要求,可以用回退的DDL之前实现并提交后.

sql oracle ddl transactions

15
推荐指数
3
解决办法
4万
查看次数

使用预定义的主键序列在h2数据库中创建表

我想在H2数据库中创建一个表.如何指定应从已创建的序列生成主键?

该序列称为group_seq,我使用以下语句创建它:

CREATE SEQUENCE GROUP_SEQ;
Run Code Online (Sandbox Code Playgroud)

因此,当我创建表时,如何指定我希望我的主键col(ID)使用该序列?

ddl h2 sequence

15
推荐指数
1
解决办法
3万
查看次数

我该如何组织我的主ddl脚本

我目前正在为我们的数据库创建一个主ddl.从历史上看,我们使用备份/恢复来对数据库进行版本控制,而不是维护任何ddl脚本.架构非常大.

我目前的想法:

  • 将脚本分成几部分(可能在单独的脚本中):

    1. 表创建
    2. 添加索引
    3. 添加触发器
    4. 添加约束
  • 每个脚本都会被主脚本调用.

  • 我可能需要一个脚本暂时删除约束以进行测试
  • 架构中可能存在孤立表,我计划识别可疑表.

还有其他建议吗?

编辑:此外,如果有人知道自动化部分过程的好工具,我们正在使用MS SQL 2000(旧的,我知道).

sql sql-server schema ddl

14
推荐指数
2
解决办法
1911
查看次数

使用EclipseLink为JPA 2.0生成DDL

我用JPA 2.0注释创建了我的模型类.在运行时,我将使用EclipseLink 2.2.0,但我一直小心在我的模型类中只使用纯JPA注释.

现在,如何为数据库生成模式DDL?

我想使用EclipseLink API从类生成DDL,但不是在运行时生成.相反,我希望Java类在命令行上运行并输出DDL.这个人为Hibernate做了什么,我想要EclipseLink.

我也会为Maven安排一个Ant任务或一些插件.

另外,我选择将文件命名jpa.xml而不是persistence.xml ; 如果你的解决方案也能解决这个问题.否则,我将重命名我的文件persistence.xml.

ddl jpa eclipselink

14
推荐指数
1
解决办法
1万
查看次数

是否可以在PostgreSQL中的事务中包装DDL更改?

我知道在MySQL ddl语句中,例如alter table/create table/etc会导致隐式事务提交.

当我们转向PostgreSQL时,是否可以在事务中包装多个DDL语句?

这将使迁移脚本更加健壮,失败的DDL更改将导致所有内容回滚.

sql postgresql ddl transactions

14
推荐指数
2
解决办法
8678
查看次数

如何删除Postgres中表的所有索引?

我一直有这个问题:我有一个表上需要删除的20个索引才能进行测试.删除表不会丢弃所有这些元数据.

似乎没有通配符drop index ix_table_*或任何有用的命令.你可以编写的psql周围似乎有一些bash循环.
必须有更好的东西!思考?

postgresql indexing ddl metadata dynamic-sql

14
推荐指数
3
解决办法
1万
查看次数

超级键与候选键

ERDB中的Super和Candidate键有什么区别?

谢谢.

sql database ddl database-design

13
推荐指数
2
解决办法
2万
查看次数

引用列的统计信息是否会阻止该列被删除?

我正在尝试一个非常简单的drop column陈述:

alter table MyTable drop column MyColumn
Run Code Online (Sandbox Code Playgroud)

并接受几个错误

消息5074,级别16,状态1,行1
统计信息'_dta_stat_1268251623_3_2'取决于列'MyColumn'.

最后是

消息4922,级别16,状态9,行1
ALTER TABLE DROP COLUMN MyColumn失败,因为一个或多个对象访问此列.

我不认为统计数据会阻止列被删除.他们呢?如果是这样,因为这些显然是自动创建的统计信息,我不能依赖于同一数据库的多个副本中的名称相同,那么我怎样才能在升级脚本中删除所有这些统计信息以在不同的数据库上执行?

sql-server ddl sql-server-2005

13
推荐指数
2
解决办法
1万
查看次数

来自apache的DDLUtils的替代品

我想知道有哪些替代方案可以替代Apache的DDL工具.

我问这个是因为ddlutils项目接缝是死的,而且它也不支持H2数据库.我搜索过它,然后找到像液体基地或飞路这样的建议.

我的问题是:这些框架在项目启动时运行,并根据某些XML文件更改数据库结构.它们真的是为数据库迁移而设计的.

我想要的是一个在高抽象级别运行时CREATE/ALTER表的框架,即至少支持Mysql,Sqlserver,oracle和H2.

例如,我可以告诉引擎我想创建一个带有类型编号的Field AGE的表,框架将改写为:

create table MY( id bigint(20))
create table MY(id bigint)
create table MY (id, number)
Run Code Online (Sandbox Code Playgroud)

取决于底层的数据库引擎.

有什么建议?

我可以看到ddlutils有一个补丁,因为它支持H2.但是我无法修补我的svn结账...

任何帮助将不胜感激.

谢谢提前瑞

java database ddl runtime ddlutils

13
推荐指数
1
解决办法
1342
查看次数