Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL列默认值和范围_Mysql_Sql - Fatal编程技术网

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,请参阅更新。根据专栏的使用情况,可能会有更多方法。