ddl相关内容
我正在尝试使用MySQL中的预准备语句创建数据库。这里我传递的参数如下所示。 PreparedStatement createDbStatement = connection.prepareStatement("CREATE DATABASE ?"); createDbStatement.setString(1, "first_database"); createDbStatement.ex
..
我有一个表,其中一列的类型为Identity Column,它也是主键。 CREATE TABLE identity_demo ( id NUMBER GENERATED BY DEFAULT ON NULL AS IDENTITY, description VARCHAR2(100) not null ); 然后我插入几行数据 insert into id
..
我有一个如下所示的Postgres 8.4架构: My_Database |-> Schemas |-> AccountA |-> AccountB |-> AccountC |-> AccountD |-> AccountE ... |-> AccountZ 所有模式都有一个名为produ
..
我们对现有视图进行了一些更改,现在希望返回到以前的版本。 是否可以获取Snowflake中常规视图的DDL历史记录? 推荐答案 如果您在过去365天内创建了视图的最新版本,则应该能够通过查询雪花数据库来获取创建它的查询。您可以编写类似这样的代码来查找去年对MY_VIEW_NAME: 的更改 select * from "SNOWFLAKE"."ACCOUNT_USAG
..
我已经为主用户hfdora创建了一个名为cons_interrupted_data的新视图,并且该视图已经成功创建。但是,当我在将所有权限授予用户(CI)之后,尝试为同一数据库的另一个用户(CI)创建相同的视图时,会收到以下错误, *OMS_Consumer 第13行出错: ORA-00942:表或视图不存在 用户hfdora和配置项都是同一数据库的一部分,此OMS_Consumer
..
..
我想制作一个包含一个自动生成的主键和两个外键的表,但我遇到了这个错误...... 创建表格答案(默认在null上生成的id号作为身份主键, question_id number 外键引用问题(id), user_id number 外键引用 users(id), 回答 varchar(1000), post_date 日期);创建表答案(默认在 null 上生成的 ID 号作为身份主键,ques
..
我有一个包含 userid 和 username 列的用户表,并且两者都是唯一的. 在 userid 和 username 之间,哪个更好用作外键,为什么? 我老板想用字符串,可以吗? 解决方案 外键首选字符串还是整数? 视情况而定 现有的讨论关于 自然键和代理键 - 您需要决定什么适合您,以及您的组织内的“标准"是什么. 在 OP 的情况下,有一个代理键 (
..
我正在查看 MySQL 文档 这里 并试图理清 FOREIGN KEYs 和 CONSTRAINTs 之间的区别.我认为 FK 是一个约束,但文档似乎在谈论它们时好像它们是独立的东西. 创建 FK 的语法是(部分)... [CONSTRAINT [符号]] 外键[index_name] (index_col_name, ...)参考 tbl_name (index_col_name,...
..
在 MS SQL Server 中,可以使用 ON UPDATE CASCADE 选项创建外键,因此每当您更新主键中的一列时,其他表中的外键也将是由 DBMS 更新. 那么,如何在 Oracle 中做到这一点? 解决方案 Oracle 不允许使用“ON UPDATE CASCADE"的外键约束. 这里有几个选项. 创建外键,并创建“更新时"触发器.使用下面的包(需要安装在
..
我的数据库背景是 Oracle,所以我惊讶地发现 Postgres 在事务中包含架构更改 - 如果您开始更改,创建一个表然后回滚,该表就会消失.它也适用于添加和删除列.显然这是非常好的. 我们即将对依赖此功能的架构增量的部署方式进行一些更改.在此之前,我想了解交易保证的延伸范围,但我在文档中找不到任何相关信息.我假设我只是使用了错误的搜索词 - 我的搜索只是转到包含“交易"、“创建"和“表格
..
如果您在事务进行到一半并执行 DDL 语句(例如截断表),则事务将提交. 我想知道这种情况是否总是如此,根据定义,还是隐藏在某处的设置可以回滚事务而不是提交. 谢谢. 编辑以澄清... 我不打算在截断后回滚.我只想确认已经执行的声明绝对总是将在 DDL 之前提交.只是想确保某处没有系统属性,有人可以设置来破坏我的代码. 我理解需要在 DDL 之前和之后提交,但从概念上
..
在 Oracle DDL(创建/更改)中是否可以像在 MS SQL(从 2005 年开始)中那样进行事务处理? 解决方案 没有.在 Oracle DDL 语句中本身不是事务性的. 在开始实际工作之前,运行 DDL 语句将隐式提交该会话的任何打开事务. 此外,如果另一个会话在正在修改的对象或其依赖项之一上具有打开的事务,则某些语句(如更改表语句)可能会失败.您可以设置 ddl_l
..
我想知道是否可以在一个事务中运行多个 DDL 语句.我对 SQL Server 特别感兴趣,尽管其他数据库(至少是 Oracle、PostgreSQL)的答案也可能很有趣. 我一直在为事务内创建的表做一些“创建表"和“创建视图",似乎存在一些不一致,我想知道 DDL 是否不应该在事务内完成... 我可能可以将 DDL 移到事务之外,但是我想为此得到一些参考.到目前为止我发现了什么:
..
我正在开发一个发布 DDL 的程序.我想知道CREATE TABLE和类似的DDL是否可以在 回滚 Postgres MySQL SQLite 等 描述每个数据库如何使用 DDL 处理事务. 解决方案 http://wiki.postgresql.org/wiki/Transactional_DDL_in_PostgreSQL:_A_Competitive_Analysis
..
我知道我可以用它来创建 DDL 创建触发器; 创建或替换触发器create_table_trigger在架构上创建之后宣布开始结尾; 问题是这个触发器会在像“创建序列"这样的 DDL 上运行;我如何只对“创建表"DDL 执行此操作? 解决方案 CREATE OR REPLACE TRIGGERcreate_table_trigger在架构上创建之后开始IF SYS.DICTIONARY
..
我正在玩一些 JPA 的东西,更改映射以查看它们应该如何等等.这是基本的实验.但是,我找不到可以简单地读取我的实体然后为我生成表模式的工具.我试图在 JBoss 工具中找到类似的东西,但 nada.Eclipse 集成将是一个巨大的优势,但我会使用命令行工具或 ant 任务. 有什么想法吗? 解决方案 我认为使用 JPA 并没有通用的方法可以做到这一点,您必须直接使用底层 JPA 实
..
我正在处理一些敏感的会计表,我想审计在该表上执行的任何 SELECT 语句或与它们相关的任何视图. 我在 BOL(在线图书) 与 SELECT 语句有关.DML 触发器仅用于 INSERT、UPDATE 和 DELETE. 是否可以通过 SELECT 语句记录谁访问了表和视图? 解决方案 您有 3 个选择: 如果您想登录(并删除表权限),则允许通过存储过程进行访问 如果
..
我正在尝试了解出现以下错误的原因. `ORA-04021: 等待锁定对象时发生超时` 此错误是在运行命令 alter table alter table > 时从过程中抛出的.截断子分区. v_dyncursor_stmt := 'with obj as (select/*+ materialize */data_object_id, subobject_name fro
..
我们在 Oracle 数据库中的表上遇到了一个奇怪的情况,删除一列会导致更改另一列的默认值.这是场景. 我的表中有一些示例数据: select * from SAMPLE_TABLE ;ID BUSINESS_KEY----------------------------------------- ---------------e59bf31c-49a4-4638-bf6e-7d1be60
..