在 MySQL 列上始终使用默认值是最佳做法吗?
这会提高性能吗?
我已将我的列设置为NOT NULL但未指定默认值。
这是不好的做法吗?
我有一个看起来像这样的函数:
BEGIN
DROP DATABASE IF EXISTS db_1;
END;
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
错误:无法从函数或多命令字符串执行 DROP DATABASE。
是否无法从 PostgreSQL 的存储过程中删除数据库?我正在使用 plpgsql。
我有一个包含以下列的表:
idvaluecreation_date目前,已经为id和value列创建了索引。
我必须在此表中搜索给定值,并希望尽可能快地进行搜索。但我真的不需要查看超过一个月的记录。因此,理想情况下,我想将它们从索引中排除。
实现这一目标的最佳方法是什么:
(PS.:“最好的解决方案”是指最方便、快捷、易于维护的解决方案)
与pg_dump 一样没有对对象的评论?, 有没有人知道一个命令可以一次快速删除COMMENT ON所有对象上的注释(创建于)?
现在,我求助于 bash 生成一个 SQL 脚本,该脚本会一个一个地取消每个表/视图/列上的注释,但速度很慢,尤其是 > 4000 列。
例子:
COMMENT ON COLUMN table1.column1 IS NULL;
COMMENT ON COLUMN table1.column2 IS NULL;
COMMENT ON COLUMN table1.column3 IS NULL;
...
Run Code Online (Sandbox Code Playgroud) 我想使用 Hibernate 的模式生成来为我无法直接从我的 PC 访问的数据库生成 DDL,只需使用 hibernate 配置文件。如果可能,我想跳过本地 oracle 数据库的安装。hibernate 可以为适当方言、版本等的“理论”数据库生成 DDL,还是白日做梦?
有没有其他工具可以做到这一点?
我需要将Oracle 数据库的完整模式(仅ddl,无数据)转储到文本文件或一组文本文件,以便能够使用标准 VCS 工具(如git )系统地跟踪对数据库模式的修订。
使用我最喜欢的 RDBMS postgresql,这是一项几乎微不足道的简单任务,使用pg_dump --schema-only.
然而,事实证明,使用 Oracle 11g 将 Oracle DB 模式转储到 SQL 文件是一项非常困难的任务。我有兴趣了解其他人已经找到的方法。
不幸的是,我无法使用数据泵导出Oracle 10g 中引入工具,因为这些工具需要 DBA 级别的访问权限,而对于我的大多数客户的数据库,我无法轻松获得此级别的访问权限。
我使用过 Oracle 的 SQL 开发人员 GUI,它主要通过“单独文件”设置完成我想要的操作:
但是,它有几个主要问题:

exp 和 impOracle的旧的exp命令行工具确实不要求具有DBA权限。它可以导出数据库的完整 DDL(具有 DBA …
我正在使用 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) ddl ×10
postgresql ×4
plpgsql ×2
aws-lambda ×1
database ×1
dblink ×1
flyway ×1
foreign-keys ×1
hibernate ×1
hive ×1
indexing ×1
java ×1
liquibase ×1
metadata ×1
mysql ×1
oracle ×1
oracle11g ×1
partitioning ×1
sql ×1
sql-server ×1