现有一字段conpwd长度于预设值不相符,原来一直用没发现,有没有什么语句,在不更改原来数据的情况下,改变预设值与长度相吻合。。原设计长度为10  预设值为000000查询失败原因为此

解决方案 »

  1.   

    mysql> drop table if exists aa;
    Query OK, 0 rows affected (0.00 sec)
    使用alter table  MODIFY [COLUMN] column_definition ;例如下面“--  预设name是varchar(4)类型
    mysql> create table aa(
        -> name varchar(4));
    Query OK, 0 rows affected (0.00 sec)
     
    mysql> insert into aa values('abc');
    Query OK, 1 row affected (0.00 sec)
    -- 此次插入的列长度超过预设值,虽然没有报错,可是可以从结果中看到,别没有达到预计效果
    mysql> insert into aa values('abcdefg');
    Query OK, 1 row affected, 1 warning (0.00 sec)mysql> select * from aa;
    +------+
    | name |
    +------+
    | abc  | 
    | abcd | 
    +------+
    2 rows in set (0.00 sec)
    --  利用此句修改列name的类型。
    mysql> alter table aa modify name varchar(10);
    Query OK, 2 rows affected (0.00 sec)
    Records: 2  Duplicates: 0  Warnings: 0
    --  再次试验,可以发现,并没有影响已插入的数据。
    mysql> insert into aa values('abcdefg');
    Query OK, 1 row affected (0.00 sec)mysql> select * from aa;
    +---------+
    | name    |
    +---------+
    | abc     | 
    | abcd    | 
    | abcdefg | 
    +---------+
    3 rows in set (0.00 sec)