Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/268.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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
Php MySQL中的硬编码数据库字段限制和有效值_Php_Mysql_Field_Limit - Fatal编程技术网

Php MySQL中的硬编码数据库字段限制和有效值

Php MySQL中的硬编码数据库字段限制和有效值,php,mysql,field,limit,Php,Mysql,Field,Limit,我正在MySQL中创建一个表。 我需要的是一个只接受10个数字的字段。 有没有办法在数据库级别强制执行此限制(以及其他限制) 谢谢。您不想在一个字段中存储多个值。这是一个痛苦/挫折的配方,总是一个糟糕设计的标志。使用子表存储值,并在该级别强制不超过10。您需要访问此表来计算存在的记录数,如果大于等于10,则中止插入 您不希望在单个字段中存储多个值。这是一个痛苦/挫折的配方,总是一个糟糕设计的标志。使用子表存储值,并在该级别强制不超过10。您需要访问此表来计算存在的记录数,如果大于等于10,则中止

我正在MySQL中创建一个表。
我需要的是一个只接受10个数字的字段。
有没有办法在数据库级别强制执行此限制(以及其他限制)


谢谢。

您不想在一个字段中存储多个值。这是一个痛苦/挫折的配方,总是一个糟糕设计的标志。使用子表存储值,并在该级别强制不超过10。您需要访问此表来计算存在的记录数,如果大于等于10,则中止插入

您不希望在单个字段中存储多个值。这是一个痛苦/挫折的配方,总是一个糟糕设计的标志。使用子表存储值,并在该级别强制不超过10。您需要访问此表来计算存在的记录数,如果大于等于10,则中止插入

比如,十种可能性中的一种?如果是,请选择枚举字段。或者你是说正好十个不同的数值?还是说正好十位数?还是其他?:-)我用数字的上限误导了你们两个。我是说10位数。谢谢,怀斯盖伊。如何限制这样的字段?它需要正好是10位,还是不超过10位?(我想知道您是否希望
ZEROFILL
47
转换为
0000000047
)必须精确为10位,并且ZEROFILL将/不需要。在这种情况下,我认为您需要使用触发器,正如@Marc B建议的那样,但要验证该值是否精确为10位。要检查长度,可以检查
楼层(值/100000000)
是否介于1和9之间(包括1和9)。例如,十种可能性中的一种?如果是,请选择枚举字段。或者你是说正好十个不同的数值?还是说正好十位数?还是其他?:-)我用数字的上限误导了你们两个。我是说10位数。谢谢,怀斯盖伊。如何限制这样的字段?它需要正好是10位,还是不超过10位?(我想知道您是否希望
ZEROFILL
47
转换为
0000000047
)必须精确为10位,并且ZEROFILL将/不需要。在这种情况下,我认为您需要使用触发器,正如@Marc B建议的那样,但要验证该值是否精确为10位。要检查长度,可以检查
楼层(值/100000000)
是否介于1和9之间(包括1和9)。