我想知道是否有任何方法可以使单个非空约束应用于我表中的所有属性。我知道我可以在每一行中增加一个,但我只是想学着变得更有效率。我试着在网上搜索,但没有找到关于这个话题的任何东西。
谢谢!
更多信息:
我想我的问题可以概括为“是否有任何方法来定义表范围或数据库范围的约束?”对于整个数据库,我需要每个varchar到‘“(空字符串)的默认值,但是现在我正在手动对每个varchar执行这个操作。
再次,我已经做了大部分,但似乎应该有一个方法来避免这种重复。
发布于 2011-09-28 14:12:16
在http://dev.mysql.com/doc/refman/5.1/en/create-table.html中,唯一可以将null /null放在列上的地方。
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,这可能会导致混淆。
发布于 2011-09-28 13:56:34
不,没有办法这样做。您必须在列级别上说明这一点,但这是您只做过一次的事情。可能是几次击键,或者每列点击一次。没有效率低下。
发布于 2011-09-28 13:59:32
你认为triggers还是stored procedures?完全取决于你的数据库管理系统。但是它也在DB中增加了一个over工作。
忘记CHECK子句,因为mySql忽略它。
https://stackoverflow.com/questions/7584296
复制相似问题