MYSQL列默认值和范围
我做了一张这样的桌子:MYSQL列默认值和范围,mysql,sql,Mysql,Sql,我做了一张这样的桌子: CREATE TABLE clients ( empno INTEGER NULL DEFAULT 7654 CHECK ( 7000 <= empno AND empno <= 8000 ), cname VARCHAR(20) NOT NULL ); 创建表客户端 ( empno整数空默认7654检查(7000 将empno字段更改为notnull 这是一个文档化的特性:MySQL忽略CHECK
CREATE TABLE clients
(
empno INTEGER NULL DEFAULT 7654 CHECK ( 7000 <= empno AND
empno <= 8000 ),
cname VARCHAR(20) NOT NULL
);
创建表客户端
(
empno整数空默认7654检查(7000
将empno
字段更改为notnull
这是一个文档化的特性:MySQL忽略CHECK
子句
:
CHECK子句已解析,但被所有存储引擎忽略
一种解决方法是创建另一个值从7000到8000的表,并添加外键约束,这是InnoDB和NDB引擎所加强的。告诉您将如何使用此列,可能有更好的方法来解决它
将empno
字段更改为notnull
这是一个文档化的特性:MySQL忽略CHECK
子句
:
CHECK子句已解析,但被所有存储引擎忽略
解决方法是创建另一个值从7000到8000的表,并添加外键约束,这是InnoDB和NDB引擎提供的。告诉您将如何使用此列,并且可能有更好的方法解决此问题。您必须自己进行筛选以捕获端上的空字符串。为nullable设置默认值字段似乎有点矛盾。您必须自己进行筛选以捕获端上的空字符串。为可为空的字段设置默认值似乎有点矛盾。好的,MYSQL还有其他方法吗?@Modaresi,请参阅更新。根据列的使用情况,可能有更多方法可用。好的,还有其他方法吗MYSQL还有其他方法吗?@Modaresi,请参阅更新。根据专栏的使用情况,可能会有更多方法。