开发者

解决创建主键报错:Incorrect column specifier for column id问题

目录
  • 创建主键报错
    • 非要使用varchar的话
  • 总结

    创建主键报错

    Incorrect column specifier for column‘id’

    mysql使用语句创建表将一个字段属性设置主键时,javascript该字段的类型只能是int类型的,varchar类型的会报错

    测试代码

    CREATE TABLE t_user(
    	id INT PRIMARY KEY AUTO_INCREMENT,
        -- id VARCHAR(10) PRIMARY KEY AUTO_INCREMENT, -- 会报错,这样写的话
        -- 报错信息:Incorrect column specifier for column 'id'
    	usernmae VARCHAR(10),
    	pwd VARCHAR(32),
    	sex VARCHAR(android4),
    	age INT,
    	phone VARCHAR(18),
    	email VARCHAR(32),
    	idcard VARCHAR(32),
    	addr VARCHAR(32)
    );
    DROP TABLE IF EXISTS t_user;

    非要使用varchar的话

    但是可以通过在SQLyog里面通过右键改变表可以修改为varchar类型的

    解决创建主键报错:Incorrect column specifier for column id问题

    测试是否可以添加代码:

    INSERT INTO t_user VALUES('sasax','张三','123456','男',29,'1515465','szxZ@aspython.com','1213231','北京路');
    
    
    /* 添加成功
    1 queries executed, 1 success, 0 errors, 0 warnings
    
    查询:insert into t_user values('sasax','张三','123456','男',29,'1515465','szxZ@as.com','1213231','北京路')
    
    共 1 行受到影响
    
    执行耗时   : 0 sec
    传送时间   : 0 sec
    总耗时      : 0 sec
    */

    测试是否还可以自动增长:

    结论:不能,如果将主机id设置为default或者是null都不能添加成功

    测试代码:

    INSERT INTO t_user VALUES(DEFAULT,'张三','123456','男',29,'1515465','szxZ@as.com','1213231','北京路');
    
    INSERT http://www.devze.comINTO t_user VALUES(NULL,'张三','123456','男',29,'1515465','szxZ@as.com','1213231','北京路');
    javascript/* 报错
    
    1 queries executed, 0 success, 1 errors, 0 warnings
    
    查询:insert into t_user values(default,'张三','123456','男',29,'1515465','szxZ@as.com','1213231','北京路')
    
    错误代码: 1364
    Field 'id' doesn't have a default value
    */
    INSERT INTO t_user VALUES('sas','张三','123456','男',29,'1515465','szxZ@as.com','1213231','北京路');
    
    /* 成功
    1 queries executed, 1 success, 0 errors, 0 warnings
    
    查询:insert into t_user values('sas','张三','123456','男',29,'1515465','szxZ@as.com','1213231','北京路')
    
    共 1 行受到影响
    
    执行耗时   : 0 sec
    传送时间   : 0 sec
    总耗时      : 0 sec
    */

    结论:主键id如果要设置为自增长,最好还是使用int类型

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新数据库

    数据库排行榜