标签: ddl

最好的独立于数据库的 SQL DDL 实用程序?

我正在开发 .net 平台的项目,并希望支持多种数据库类型。我想以通用格式将 DDL 保留在源代码控制之下,然后将其转换为数据库特定的 DDL 进行部署。

因此,我正在寻找能够将通用 DDL 转换为数据库特定 DDL 的实用程序。理想情况下,它可以开箱即用地支持 MSSQL 05/08、MySQL、Oracle、Postgres 和 DB2。

以下是我迄今为止找到的工具:

  1. XML 到 DDL
    • 没有内置的 MSSQL 支持。
  2. DDUtils
    • 没有命令行实用程序。必须从 java 或 ant 脚本调用。
  3. ActiveRecord::迁移
    • 不支持外键
    • 不知道如何与.net 项目集成。

有谁对我提到的或了解其他人有经验吗?

.net sql version-control ddl

5
推荐指数
1
解决办法
2715
查看次数

XML 模式 totalDigits/fractionDigits 与 SQL 精度/比例

我想找出 XML Schema totalDigits/fractionDigits和 SQL 数字精度/比例之间的对应关系。

1)假设我们有以下简单类型:

<xs:simpleType name="DecimalNumber">
    <xs:restriction base="xs:decimal">
        <xs:fractionDigits value="17"/>
        <xs:totalDigits value="18"/>
    </xs:restriction>
</xs:simpleType>
Run Code Online (Sandbox Code Playgroud)

我将如何在 SQL 中表示它?让我们假设 HSQL 方言(无关紧要)。我对最严格的 SQL 类型感兴趣,它可以保存 XML Schema 简单类型的值空间中的所有值。

numeric(18,17)吗?或者numeric(35,17)

2) 如果我们只有totalDigits?

<xs:simpleType name="DecimalNumber">
    <xs:restriction base="xs:decimal">
        <xs:totalDigits value="18"/>
    </xs:restriction>
</xs:simpleType>
Run Code Online (Sandbox Code Playgroud)

SQL 中的适当表示是什么?

3)或者只是fractionDigits

<xs:simpleType name="DecimalNumber">
    <xs:restriction base="xs:decimal">
        <xs:fractionDigits value="17"/>
    </xs:restriction>
</xs:simpleType>
Run Code Online (Sandbox Code Playgroud)

xml sql ddl xsd

5
推荐指数
1
解决办法
3067
查看次数

Firebird 添加具有默认值但不同值的列

我正在尝试向 firebird 表添加一列。该列应该有一个默认值 1,但最初对于已经存在的行,该值应该设置为 0。这应该发生在一个事务中。

我试过

ALTER TABLE MYTABLE ADD MYCOLUMN SMALLINT DEFAULT 1 NOT NULL;
UPDATE MYTABLE SET MYCOLUMN = 0; 
Run Code Online (Sandbox Code Playgroud)

但这在一笔交易中是不允许的,因为更新不会看到新列。我也试过:

ALTER TABLE MYTABLE ADD MYCOLUMN SMALLINT DEFAULT 0 NOT NULL;
ALTER TABLE MYTABLE ALTER COLUMN MYCOLUMN SET DEFAULT 1 NOT NULL;
Run Code Online (Sandbox Code Playgroud)

希望该列之后为 0 但它将为 1。

在一笔交易中获得我想要的东西的更多选择?

sql ddl firebird firebird2.5

5
推荐指数
1
解决办法
6626
查看次数

SERDEPROPERTIES 上是否有 Hive JSON SERDE 文档?

当我创建一个以 JSON 格式存储数据的 hive 表时,我使用了 org.apache.hive.hcatalog.data.JsonSerDe,其中一个 SERDEPROPERTIES 是'serialization.format' = '1'.

但是,我找不到关于此属性的任何文档,其中列出了格式 1 是什么以及其他选项是什么。我还想知道 SERDEPROPERTIES 有哪些其他选项。

我一直在网上搜索并阅读 Hive 的 LanguageManual DDL 页面中的所有相关链接,但仍然找不到任何内容。有人能指出我正确的方向吗?欣赏它。

ddl json hadoop hive

5
推荐指数
1
解决办法
1190
查看次数

#1050 - 表 'wp_commentmeta' 已经存在

错误 SQL 查询:

CREATE TABLE `wp_commentmeta` (
  `meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
  `comment_id` bigint(20) unsigned NOT NULL DEFAULT '0',
  `meta_key` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
  `meta_value` longtext COLLATE utf8mb4_unicode_ci,
  PRIMARY KEY (`meta_id`),
  KEY `comment_id` (`comment_id`),
  KEY `meta_key` (`meta_key`(191))
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
MySQL said: Documentation
Run Code Online (Sandbox Code Playgroud)

#1050 - 表 'wp_commentmeta' 已经存在

mysql sql ddl

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

如何使用 cloudformation 处理数据库 ddl/迁移?

我正在使用 Lambdas、SNS 和 MySql 构建一个项目。该项目是使用 CloudFormation 部署的。我最初使用 DynamoDB,但意识到我的数据实际上是关系数据,并且没有大量数据,因此使用 RDS 对我的情况会更好。我很难在网上找到有关如何在 CloudFormation 中处理数据库迁移的信息。

处理这些迁移的正确方法是什么?我找到了有关使用 lambda 进行迁移的信息。这是最好的方法吗?

ddl database-migration amazon-web-services aws-cloudformation aws-lambda

5
推荐指数
0
解决办法
202
查看次数

Flyway db | HIVE 的 Liquibase 等价物

我曾经使用 Flyway 管理我的数据库,但是我们迁移到 HDFS HIVE 并且我还没有看到类似的东西,目前正在寻找建议

ddl hive database-migration liquibase flyway

5
推荐指数
0
解决办法
526
查看次数

如何在postgres中向分区表添加新列

我使用 postgres 10 的声明式分区基于列值创建了一个具有多个分区的新主表。如何向表中添加新列?

postgresql ddl partitioning

5
推荐指数
1
解决办法
2378
查看次数

同一个表上的两个外键:如何在删除级联上实现?

我有一个有两列的表。它们中的每一个都是同一个第二个表的外键:

CREATE TABLE [dbo].[TBL_TOGETHER]
(
    [ID1] [int] NULL FOREIGN KEY REFERENCES [TBL_ANOTHER_TABLE](ID),
    [ID2] [int] NULL FOREIGN KEY REFERENCES [TBL_ANOTHER_TABLE](ID)
)
Run Code Online (Sandbox Code Playgroud)

但现在我不能再删除实体TBL_ANOTHER_TABLE了:

DELETE 语句与 REFERENCE 约束“FK__TBL_ASD__4DE98D56”冲突。

我的问题是:什么是实现最佳的解决方案ON DELETE CASCADETBL_TOGETHER

我尝试在外键上添加ON DELETE SET NULLON DELETE CASCADE,但由于循环或多个级联路径,它不起作用。

我试图在 上添加删除触发器TBL_ANOTEHR_TABLE,但它仍然与外键冲突:

ALTER TRIGGER REMOVE_FORENGKEY
ON TBL_ANOTHER_TABLE 
FOR DELETE
AS
BEGIN
    UPDATE TBL_TOGETHER
    SET TBL_TOGETHER.ID1 = NULL
    FROM TBL_TOGETHER
    JOIN deleted ON TBL_TOGETHER.ID1 = deleted.ID;

    UPDATE TBL_TOGETHER
    SET TBL_TOGETHER.ID2 = NULL
    FROM TBL_TOGETHER
    JOIN …
Run Code Online (Sandbox Code Playgroud)

sql-server ddl foreign-keys

5
推荐指数
1
解决办法
2128
查看次数

如何将表 ID 从序列号更改为标识号?

我在 Postgres 10.10 中有下表:

  Table "public.client"
       Column        |  Type   | Collation | Nullable |                 Default                  
---------------------+---------+-----------+----------+------------------------------------------
 clientid            | integer |           | not null | nextval('client_clientid_seq'::regclass)
 account_name        | text    |           | not null | 
 last_name           | text    |           |          | 
 first_name          | text    |           |          | 
 address             | text    |           | not null | 
 suburbid            | integer |           |          | 
 cityid              | integer |           |          | 
 post_code           | integer |           | not null | 
 business_phone      | text    |           |          | 
 home_phone …
Run Code Online (Sandbox Code Playgroud)

sql postgresql ddl auto-increment

5
推荐指数
1
解决办法
1470
查看次数