我正在开发 .net 平台的项目,并希望支持多种数据库类型。我想以通用格式将 DDL 保留在源代码控制之下,然后将其转换为数据库特定的 DDL 进行部署。
因此,我正在寻找能够将通用 DDL 转换为数据库特定 DDL 的实用程序。理想情况下,它可以开箱即用地支持 MSSQL 05/08、MySQL、Oracle、Postgres 和 DB2。
以下是我迄今为止找到的工具:
有谁对我提到的或了解其他人有经验吗?
我想找出 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) 我正在尝试向 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。
在一笔交易中获得我想要的东西的更多选择?
当我创建一个以 JSON 格式存储数据的 hive 表时,我使用了 org.apache.hive.hcatalog.data.JsonSerDe,其中一个 SERDEPROPERTIES 是'serialization.format' = '1'.
但是,我找不到关于此属性的任何文档,其中列出了格式 1 是什么以及其他选项是什么。我还想知道 SERDEPROPERTIES 有哪些其他选项。
我一直在网上搜索并阅读 Hive 的 LanguageManual DDL 页面中的所有相关链接,但仍然找不到任何内容。有人能指出我正确的方向吗?欣赏它。
错误 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' 已经存在
我正在使用 Lambdas、SNS 和 MySql 构建一个项目。该项目是使用 CloudFormation 部署的。我最初使用 DynamoDB,但意识到我的数据实际上是关系数据,并且没有大量数据,因此使用 RDS 对我的情况会更好。我很难在网上找到有关如何在 CloudFormation 中处理数据库迁移的信息。
处理这些迁移的正确方法是什么?我找到了有关使用 lambda 进行迁移的信息。这是最好的方法吗?
ddl database-migration amazon-web-services aws-cloudformation aws-lambda
我曾经使用 Flyway 管理我的数据库,但是我们迁移到 HDFS HIVE 并且我还没有看到类似的东西,目前正在寻找建议
我使用 postgres 10 的声明式分区基于列值创建了一个具有多个分区的新主表。如何向表中添加新列?
我有一个有两列的表。它们中的每一个都是同一个第二个表的外键:
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 CASCADE在TBL_TOGETHER?
我尝试在外键上添加ON DELETE SET NULL或ON 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) 我在 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) ddl ×10
sql ×5
hive ×2
postgresql ×2
.net ×1
aws-lambda ×1
firebird ×1
firebird2.5 ×1
flyway ×1
foreign-keys ×1
hadoop ×1
json ×1
liquibase ×1
mysql ×1
partitioning ×1
sql-server ×1
xml ×1
xsd ×1