Questions tagged «ddl»

数据定义语言是SQL的子集,用于操纵数据库的结构元素,而不是表的内容。CREATE,DROP,ALTER和相关语句。

14
如何使用CREATE或REPLACE?
我理解CREATE OR REPLACE的基本含义是“如果对象存在,则将其删除,然后以任意一种方式创建它”,是否正确? 如果是这样,我在做什么错?这有效: CREATE TABLE foo (id NUMBER, title VARCHAR2(4000) DEFAULT 'Default Title') 并且这不是(ORA-00922:缺少或无效的选项): CREATE OR REPLACE TABLE foo (id NUMBER, title VARCHAR2(4000) DEFAULT 'Default Title') 我在做蠢事吗?我似乎找不到太多有关此语法的文档。
98 oracle  oracle10g  ddl 

8
使用ALTER删除列(如果它存在于MySQL中)
如果该列存在,如何使用ALTER将其删除到MySQL表中? 我知道我可以使用ALTER TABLE my_table DROP COLUMN my_column,但是如果my_column不存在则会抛出错误。是否有其他语法可有条件地删除列? 我正在使用MySQL版本4.0.18。
92 mysql  ddl  mysql4 

26
您如何看待您的主键?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 在我的团队中进行的相当活跃的讨论中,我被认为是大多数人喜欢的主键。我们有以下几组: Int / BigInt哪个自动增量是足够好的主键。 主键应至少包含3列。 id,GUID和人类可读的行标识符都应区别对待。 PK的最佳方法是什么?如果您能证明自己的观点,那就太棒了。上面有没有更好的方法? 编辑:任何人都有一个简单的示例/算法来生成很好地缩放行的人类可读的标识符?

4
SQL列定义:默认值和非null冗余吗?
我已经多次看到以下语法,该语法定义了create / alter DDL语句中的列: ALTER TABLE tbl ADD COLUMN col VARCHAR(20) NOT NULL DEFAULT "MyDefault" 问题是:由于指定了默认值,是否还需要指定该列不应该接受NULL?换句话说,DEFAULT是否不使NOT NULL变得多余?

3
在MySQL中使用选择索引创建临时表
我有一个使用临时表的存储函数。出于性能原因,我需要在该表中创建一个索引。不幸的是,我无法使用,ALTER TABLE因为这会导致隐式提交。 所以我在寻找的语法来添加INDEX对tempid创建过程中。谁能帮忙? CREATE TEMPORARY TABLE tmpLivecheck ( tmpid INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY ) SELECT * FROM tblLivecheck_copy WHERE tblLivecheck_copy.devId = did;
82 mysql  ddl  temp-tables 


5
创建或替换触发器postgres
我想“创建或替换” postgres表的触发器。但是,没有这样的sql表达式。 我看到我可以先做一个“ DROP TRIGGER IF EXISTS”(http://www.postgresql.org/docs/9.5/static/sql-droptrigger.html)。 我的问题是: 是否有比(DROP+CREATE触发器)更推荐/更好的选择 有没有为什么没有这样的“创建或替换触发器”的原因(这可能意味着我不应该这样做) 请注意,Create or Replace Trigger在oracle(https://docs.oracle.com/cd/B19306_01/appdev.102/b14251/adfns_triggers.htm)中有一个“ ” 。然后, 这样的命令是否计划用于Postgres?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.