修复mysql中的长度数

时间:2010-07-27 18:33:29

标签: mysql

我希望在Mysql表中有一个字段,它应该接受具有固定大小的输入 - 不多也不少。输入数据是一个数字,但也可以考虑字符串的解决方案,因为我没有问题将这些数据存储为varchar之类的东西。

确切地说,我想要一种数据类型,它不允许我存储一个小于7位或大于7位的数字。我不想使用触发器/存储过程。

3 个答案:

答案 0 :(得分:0)

这可以通过存储过程实现,但我不会在数据库级别上执行此操作。像这样的验证属于您的应用程序。

答案 1 :(得分:0)

我不相信目前在MySQL中没有任何方法可以实现这一点而不使用触发器或存储过程。如果MySQL支持check constraints,那么你可以做到,但它没有,所以你不能。

答案 2 :(得分:0)

可能的解决方案是:

  • TRIGGER on update / insert。
  • 检查约束,但MySQL解析并立即丢弃检查约束。
  • 应用程序级验证。
  • 查找表的外键,包含7万个900,000个整数。

唯一的另一个建议是迁移到支持CHECK约束的SQL数据库。

支持CHECK约束的开源数据库包括:

  • 的PostgreSQL
  • SQLite的
  • 火鸟
  • Apache Derby
  • 的HyperSQL

每个商业数据库也支持CHECK约束。

基本上,MySQL是市场上唯一支持CHECK约束的SQL数据库!