首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >整个表上的SQL而不是Null禁忌

问整个表上的SQL而不是Null禁忌
EN

Stack Overflow用户
提问于 2011-09-28 13:48:40
回答 3查看 698关注 0票数 2

我想知道是否有任何方法可以使单个非空约束应用于我表中的所有属性。我知道我可以在每一行中增加一个,但我只是想学着变得更有效率。我试着在网上搜索,但没有找到关于这个话题的任何东西。

谢谢!

更多信息:

我想我的问题可以概括为“是否有任何方法来定义表范围或数据库范围的约束?”对于整个数据库,我需要每个varchar到‘“(空字符串)的默认值,但是现在我正在手动对每个varchar执行这个操作。

再次,我已经做了大部分,但似乎应该有一个方法来避免这种重复。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-09-28 14:12:16

在http://dev.mysql.com/doc/refman/5.1/en/create-table.html中,唯一可以将null /null放在列上的地方。

代码语言:javascript
复制
column_definition:
    data_type [NOT NULL | NULL] [DEFAULT default_value]
      [AUTO_INCREMENT] [UNIQUE [KEY] | [PRIMARY] KEY]
      [COMMENT 'string']
      [COLUMN_FORMAT {FIXED|DYNAMIC|DEFAULT}]
      [STORAGE {DISK|MEMORY|DEFAULT}]
      [reference_definition]

国际海事组织,实在没有理由对桌子加以限制。DDL指定对每列中数据的约束,而不是列定义本身的约束。虽然人们可能希望将其作为语法糖放入,但似乎存在一些缺点: 1)添加一个新列,您可能不得不修改表约束,2) MySQL默认为NULL,这可能会导致混淆。

票数 2
EN

Stack Overflow用户

发布于 2011-09-28 13:56:34

不,没有办法这样做。您必须在列级别上说明这一点,但这是您只做过一次的事情。可能是几次击键,或者每列点击一次。没有效率低下。

票数 2
EN

Stack Overflow用户

发布于 2011-09-28 13:59:32

你认为triggers还是stored procedures?完全取决于你的数据库管理系统。但是它也在DB中增加了一个over工作。

忘记CHECK子句,因为mySql忽略它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7584296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档