问题标签 [ddl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
2549 浏览

sql - 我应该如何组织我的主 ddl 脚本

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

我目前的想法:

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

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

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

还有什么建议吗?

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

0 投票
1 回答
1579 浏览

oracle - 在事务中包装 Oracle 模式更新

我有一个定期更新其数据库模式的程序。有时,其中一个 DDL 语句可能会失败,如果确实如此,我想回滚所有更改。我将更新包装在这样的事务中:

在我们执行时,如果其中一个语句失败,我会执行 ROLLBACK 而不是 COMMIT。这在 SQL Server 上效果很好,但对 Oracle 没有预期的效果。Oracle 似乎在每个 DDL 语句之后执行一个隐式 COMMIT:

什么办法可以关闭这个隐式提交?

0 投票
2 回答
2183 浏览

nhibernate - 如何从 NHibernate 映射文件生成“迁移”DDL?

我在我的项目中使用 NHibernate 2 和 PostgreSQL。SchemaExport 类在为数据库生成 DDL 方案方面做得很好,但在第一个应用程序之前它就很棒。

有没有办法使用 NHibernate 映射文件生成“迁移”DLL(一批“ALTER TABLE”而不是 DROP/CREATE 对)?

0 投票
3 回答
985 浏览

sql - 每个 DDL SQL 命令都是可逆的吗?【数据库版本控制】

我想设置一种机制来跟踪数据库架构更改,例如此答案中描述的机制:

对于您对数据库所做的每一次更改,您都会编写一个新的迁移。迁移通常有两种方法:应用更改的“向上”方法和撤消更改的“向下”方法。单个命令使数据库保持最新,也可用于将数据库带入特定版本的模式。

我的问题如下:“向上”方法中的每个 DDL 命令是否可逆?换句话说,我们可以一直提供一个“down”的方法吗?你能想象任何不能“关闭”的 DDL 命令吗?

请不要考虑典型的数据迁移问题,在“向上”方法期间我们会丢失数据:例如,将字段类型从datetime( DateOfBirth) 更改为int( YearOfBirth),我们会丢失无法恢复的数据。

0 投票
4 回答
915 浏览

mysql - 如何在 MySQL 中声明多列 PK

我正在尝试创建一个包含两列的表,其中包含 MySQL 中的主键,但我无法弄清楚语法。我了解单列 PK,但创建具有两列的主键的语法不同。

0 投票
8 回答
132756 浏览

mysql - 使用 ALTER 删除 MySQL 中存在的列

如果该列存在,如何使用 ALTER 删除 MySQL 表中的列?

我知道我可以使用,但如果不存在ALTER TABLE my_table DROP COLUMN my_column则会引发错误。my_column是否有替代语法有条件地删除列?

我正在使用 MySQL 4.0.18 版。

0 投票
3 回答
386 浏览

sql - 用于 MacOS 的数据库草图?

我一直在尝试为 mac os 寻找免费的数据库创建者,但我找不到任何东西。谁知道我可以免费下载的?

编辑:我还需要应用程序生成 sql(在这种情况下为 mysql):)

0 投票
2 回答
676 浏览

database - 使用 SQL Server Express 进行开发时如何管理版本控制?

我正在我的开发机器上使用 SQL Server Express 开发一个网站。我的网络托管公司正在为我提供 SQL Server 2005。

目前,我所拥有的只是一个用于开发的数据库和一个位于实时服务器上的数据库。我没有生成架构的原始脚本,但我可以单独或为整个数据库自动生成创建脚本。

我现在将我的代码放入源代码管理中,我想知道我如何管理我的数据库模式。我在里面放什么?创建命令?修改脚本?

目前数据库很小,维护两个数据库并不难,但我担心未来会失控。在部署新代码时,您有什么技巧可以让实时数据库同步吗?

编辑关于什么应该进入源代码控制的任何想法?DDL 脚本应该放在这里吗?

0 投票
6 回答
3606 浏览

sql - 谁能推荐一个好的 SQL 解析器?

我正在尝试编写一个工具,可以将数据库的架构与安装脚本中的 SQL 进行比较。从数据库中获取信息非常简单,但我在解析安装脚本时遇到了一些麻烦。

我使用了一些出现在 Google 上的解析器,但它们似乎有些不完整。理想情况下,我想找到一个相当稳定并且有一半像样文档的开源解析器。

此外,我并不真正关心特定于某些数据库的类型和语法。需要检查的数据库非常简单。

0 投票
2 回答
9185 浏览

postgresql - 在 Postgresql 中将一列的注释设置为另一列的注释

假设我在 Postgresql 中创建了一个表,并在列上添加了注释:

一段时间后,我决定添加另一列:

我想查找第一列的评论内容,并与新列关联:

(什么?)将是一个系统表,但是在 pgAdmin 中环顾四周并在网上搜索之后,我还没有知道它的名字。

理想情况下,我希望能够:

但我有一种感觉,这有点扯远了。感谢您的任何想法。

更新:根据我在这里收到的建议,我最终编写了一个程序来自动化传输评论的任务,作为更改 Postgresql 列的数据类型的更大过程的一部分。你可以在我的博客上读到。