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

 更新时间:2024年08月21日 14:50:29   作者:?abc!  
这篇文章主要介绍了解决创建主键报错:Incorrect column specifier for column‘id‘问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

创建主键报错

Incorrect column specifier for column‘id’

mysql使用语句创建表将一个字段属性设置主键时,该字段的类型只能是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(4),
	age INT,
	phone VARCHAR(18),
	email VARCHAR(32),
	idcard VARCHAR(32),
	addr VARCHAR(32)
);
DROP TABLE IF EXISTS t_user;

非要使用varchar的话

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

测试是否可以添加代码:

INSERT INTO t_user VALUES('sasax','张三','123456','男',29,'1515465','szxZ@as.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 INTO t_user VALUES(NULL,'张三','123456','男',29,'1515465','szxZ@as.com','1213231','北京路');
/* 报错

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类型

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • mysql show processlist 显示mysql查询进程

    mysql show processlist 显示mysql查询进程

    processlist命令的输出结果显示了有哪些线程在运行,可以帮助识别出有问题的查询语句,两种方式使用这个命令
    2012-03-03
  • 如何选择合适的MySQL存储引擎

    如何选择合适的MySQL存储引擎

    MySQL有多种存储引擎,MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。
    2011-09-09
  • 清理Mysql general_log的方法总结

    清理Mysql general_log的方法总结

    在本篇文章里小编给大家分享的是一篇关于清理Mysql general_log的相关知识点,需要的朋友们学习下。
    2019-10-10
  • MySQL分区表使用保姆级教程

    MySQL分区表使用保姆级教程

    分区表是将大表数据按条件拆分存储在不同磁盘位置的数据库优化技术,它通过将数据分散到多个独立分区中,显著减少查询扫描范围,提升查询性能,下面就来详细的介绍一下
    2026-03-03
  • mysql group_concat()函数用法总结

    mysql group_concat()函数用法总结

    这篇文章主要介绍了mysql group_concat()函数用法,结合实例形式较为详细的group_concat()函数的功能、使用方法与相关注意事项,需要的朋友可以参考下
    2016-06-06
  • mysql group by 对多个字段进行分组操作

    mysql group by 对多个字段进行分组操作

    这篇文章主要介绍了mysql group by 对多个字段进行分组操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-09-09
  • MySQL修改root密码的3种实用方法

    MySQL修改root密码的3种实用方法

    最近在看项目,搭建本地环境时候,忘记mysql的密码,怎么修改密码,网上找了半天,终于配合着几个帖子搞定了,下面这篇文章主要给大家介绍了关于MySQL修改root密码的3种实用方法,需要的朋友可以参考下
    2023-11-11
  • MySQL如何创建可以远程访问的root账户详解

    MySQL如何创建可以远程访问的root账户详解

    作为MySQL数据库管理员,创建远程用户并设置相应的权限是一项常见的任务,下面这篇文章主要给大家介绍了关于MySQL如何创建可以远程访问的root账户的相关资料,需要的朋友可以参考下
    2024-04-04
  • mysql本地安装详细步骤和验证方法(Windows、macOS、Ubuntu)

    mysql本地安装详细步骤和验证方法(Windows、macOS、Ubuntu)

    这篇文章主要介绍了mysql本地安装详细步骤和验证方法的相关资料,分别针对 Windows、macOS、Linux(Ubuntu)三大主流系统,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2025-10-10
  • MySQL基础SQL优化之查询性能提升的4大技巧

    MySQL基础SQL优化之查询性能提升的4大技巧

    在MySQL数据库开发与管理过程中,SQL语句的性能至关重要,本文将结合实际案例,深入分析优化前后的性能差异,助力开发者写出高效的SQL语句
    2025-07-07

最新评论