是postgres吗?它就可以通过建表时修改一些东西实现!

解决方案 »

  1.   

    lumberjake(伐木工) 
    四颗星的兄弟
    怎么不可以呢?
    ALTER TABLE `against` ADD `FieldName` INT(4)  UNSIGNED ZEROFILL NOT NULL AUTO_INCREMENT primary key;
      

  2.   

    lumberjake(伐木工)
    怎么要求,怎么处理。
      

  3.   

    To: istrue(象)
    楼主说要实现“自增型的字符串”呢。我做过试验了,字符串不行啊。Varchar不能实现Zerofill
      

  4.   

    楼主你还是把字段改成int吧,用字符串搞不定的。
      

  5.   

    楼主的要求应该用数值类型来实现,
    字符型是没法实现的,
    在 MySQL 中,数值型转换成字符型是很简单的!!就如上面几位所述,
    不过要注意下面的问题,
    作为对 ANSI/ISO SQL92 标准的一个扩展,MySQL 也支持上面的表格所列出的整型类型 TINYINT、MEDIUMINT 和 BIGINT。另外一个扩展是 MySQL 支持随意指定一个整型数值的显示格式,这通过在类型的基本关键词后跟一个括号来实现(例如 INT(4))。这个可选的宽度规格说明是用于在数值显示时,对某些值的宽度短于该列宽度的值进行左填补显示的,而不是为了限制在该列中存储值的宽度,也不是为了限制那些超过该列指定宽度的值的可被显示的数字位数。当与可选的扩展属性 ZEROFILL 一起使用时,缺省填补用的空格被零代替。举例来说,一个列被定义为 INT(5) ZEROFILL,插入的值 4 被检索出来时为 00004。注意,如果在一个整型列中存储一个超过显示宽度的更大值时,当 MySQL 为某些复杂的联结(join)生成临时表时,你可能会遇到问题,因为在这种情况下,MySQL 信任地认为所有的值均适合原始的列宽度。 示例(译者注): 
    mysql> CREATE TABLE `tA` (
        ->   `id` int(4) unsigned zerofill NOT NULL,
        ->     PRIMARY KEY  (`id`)
        -> ) TYPE=MyISAM;
    Query OK, 0 rows affected (0.00 sec)mysql> INSERT INTO `tA` (`id`)
        ->  VALUES (1),(12),(1234),(12345678);
    Query OK, 4 rows affected (0.01 sec)
    Records: 4  Duplicates: 0  Warnings: 0mysql> SELECT * FROM `tA`;
    +----------+
    | id       |
    +----------+
    |     0001 |
    |     0012 |
    |     1234 |
    | 12345678 |
    +----------+
    4 rows in set (0.00 sec)* 以上结果在 MySQL 4.0.12 中测试示例结束(译者注) 更详细的请查看我翻译的 MySQL 中文语言参考手册