翼度科技»论坛 编程开发 mysql 查看内容

解决创建主键报错:Incorrect column specifier for co

9

主题

9

帖子

27

积分

新手上路

Rank: 1

积分
27
创建主键报错
  1. Incorrect column specifier for column‘id’
复制代码
mysql使用语句创建表将一个字段属性设置主键时,该字段的类型只能是int类型的,varchar类型的会报错
测试代码
  1. CREATE TABLE t_user(
  2.         id INT PRIMARY KEY AUTO_INCREMENT,
  3.     -- id VARCHAR(10) PRIMARY KEY AUTO_INCREMENT, -- 会报错,这样写的话
  4.     -- 报错信息:Incorrect column specifier for column 'id'
  5.         usernmae VARCHAR(10),
  6.         pwd VARCHAR(32),
  7.         sex VARCHAR(4),
  8.         age INT,
  9.         phone VARCHAR(18),
  10.         email VARCHAR(32),
  11.         idcard VARCHAR(32),
  12.         addr VARCHAR(32)
  13. );
  14. DROP TABLE IF EXISTS t_user;
复制代码
非要使用varchar的话

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

测试是否可以添加代码:
  1. INSERT INTO t_user VALUES('sasax','张三','123456','男',29,'1515465','szxZ@as.com','1213231','北京路');


  2. /* 添加成功
  3. 1 queries executed, 1 success, 0 errors, 0 warnings

  4. 查询:insert into t_user values('sasax','张三','123456','男',29,'1515465','szxZ@as.com','1213231','北京路')

  5. 共 1 行受到影响

  6. 执行耗时   : 0 sec
  7. 传送时间   : 0 sec
  8. 总耗时      : 0 sec
  9. */
复制代码
测试是否还可以自动增长:
结论:不能,如果将主机id设置为default或者是null都不能添加成功
测试代码:
  1. INSERT INTO t_user VALUES(DEFAULT,'张三','123456','男',29,'1515465','szxZ@as.com','1213231','北京路');

  2. INSERT INTO t_user VALUES(NULL,'张三','123456','男',29,'1515465','szxZ@as.com','1213231','北京路');
  3. /* 报错

  4. 1 queries executed, 0 success, 1 errors, 0 warnings

  5. 查询:insert into t_user values(default,'张三','123456','男',29,'1515465','szxZ@as.com','1213231','北京路')

  6. 错误代码: 1364
  7. Field 'id' doesn't have a default value
  8. */
复制代码
  1. INSERT INTO t_user VALUES('sas','张三','123456','男',29,'1515465','szxZ@as.com','1213231','北京路');

  2. /* 成功
  3. 1 queries executed, 1 success, 0 errors, 0 warnings

  4. 查询:insert into t_user values('sas','张三','123456','男',29,'1515465','szxZ@as.com','1213231','北京路')

  5. 共 1 行受到影响

  6. 执行耗时   : 0 sec
  7. 传送时间   : 0 sec
  8. 总耗时      : 0 sec
  9. */
复制代码
结论:主键id如果要设置为自增长,最好还是使用int类型

总结

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

来源:https://www.jb51.net/database/326304t0o.htm
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

举报 回复 使用道具