`
Free-man
  • 浏览: 10285 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

MySQL之AUTO_INCREMENT遇到的问题

阅读更多
   这几天在做的项目数据库需要用到MySQL,对于MySQL之前接触不多,只好看使用手册学习学习,在使用AUTO_INCREMENT设置主键为自动增长的应用中,遇到了一些疑惑的问题。具体如下:
创建数据表的SQL脚本为:
CREATE TABLE person
(
   personID INT  AUTO_INCREMENT,
   personName VARCHAR(20),
   personPwd VARCHAR(35),
   personSex VARCHAR(2),
   personPopedem VARCHAR(2),
   PRIMARY KEY (personID)
)ENGINE=InnoDB;

数据表创建完成,准备载入测试数据,输入SQL脚本,如下:
INSERT INTO person VALUES ('a','a','m','1');

一按回车,提示personID列出错了,难道是AUTO_INCREMENT必须要NOT NULL产生的问题吗?随这想法,重新输入SQL脚本载入测试数据,如下:
INSERT INTO person VALUES (0,'a','a','m','1');

这时数据载入成功了,奇怪了,于是再换一种载入脚本,如下:
INSERT INTO person (personName,personPwd,personSex,personPopedem)VALUES ('b','b','f','2');

这样同样成功,此时我产生了疑惑:既然为AUTO_INCREMENT,为什么它不会想MSSQL数据库自行管理呢,还是AUTO_INCREMENT我在使用上出现了什么的错误呢?希望接触多或用的比较多MySQL的朋友,可以指点指点,让我正面认识了解和掌握AUTO_INCREMENT的使用。补充说明我使用的MySQL版本是5.0
分享到:
评论
1 楼 511543417 2009-05-05  
新问题,还没有遇到。学习一下。

相关推荐

    PHP用mysql_insert_id()函数获得刚插入数据或当前发布文章的ID

    前言 最近在工作中又遇到了这个问题,PHP中如何获得刚插入数据的ID(或...注意:如果上一查询没有产生 AUTO_INCREMENT 的 ID,则 mysql_insert_id() 返回 0。 语法 mysql_insert_id(connection) 参数描述 connecti

    MySQL中文参考手册

    + 4.10.4 使用 Perl DBI/DBD接口遇到的问题 o 4.11 系统特定的问题 + 4.11.1 Solaris注意事项 + 4.11.2 Solaris 2.7 注意事项 + 4.11.3 Solaris x86 注意事项 + 4.11.4 SunOS 4 注意事项 + 4.11.5 Linux ...

    MYSQL

    16.3 已知可用 MyODBC一起工作的程序 16.4 怎样填写 ODBC 管理程序的各种域 16.5 怎样在ODBC中获得一个AUTO_INCREMENT列的值 16.6 报告 MyODBC 的问题 17 与一些常用程序一起使用MySQL 17.1...

    MySQL添加外键时报错:1215 Cannot add the foreign key constraint的解决方法

    前言 这篇文章主要涉及到在数据创建表时,遇到ERROR 1215 (HY000): Cannot add foreign key constraint 问题方面的内容,对于在数据创建表时,遇到同样问题感兴趣... `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT

    MySQL中文参考手册.chm

    4.10 Perl 安装说明 4.10.1 在Unix操作系统上安装 Perl 4.10.2 在 Win32上安装 ActiveState Perl 4.10.3 在 Win32 上安装 MySQL Perl 分发 4.10.4 使用 Perl DBI/DBD接口遇到的问题 ...

    MySQL错误TIMESTAMP column with CURRENT_TIMESTAMP的解决方法

    在部署程序时遇到的一个问题,MySQL定义举例如下: 代码如下:CREATE TABLE `example` ( `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, `created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `lastUpdated...

    深入mysql创建自定义函数与存储过程的详解

    一 创建自定义函数在使用mysql的过程中,mysql自带的函数可能不能完成我们的业务需求,这时就需要自定义函数,例如笔者在开发过程中遇到下面这个问题:mysql表结构如下 代码如下:DROP TABLE IF EXISTS `test`;...

    我是谁?我在干嘛?回想被MySQL UTF8编码坑的惨痛教训总结

    最近遇到几个项目被MySQL的utf8编码坑,想起之前编码问题被坑的惨痛教训,记录一下,警示自己。 曾几何时,每次建库都选utf8,觉得自己比那些用乱七八糟编码的人不知道酷到哪里去了。直到好多年前的某次课程设计做...

    总结几种MySQL中常见的排名问题

    前言: 在某些应用场景中,我们... id int auto_increment primary key, xuehao int not null, score int not null ) ENGINE=InnoDB DEFAULT CHARSET=utf8; insert into scores_tb (xuehao,score) values (1001,89

    MySQL实现树形的遍历

     关于多级别菜单栏或者权限系统中部门上下级的树形遍历,oracle中有connect by来实现,mysql没有这样的便捷途径,所以MySQL遍历数据表是我们经常会遇到的头痛问题,下面通过存储过程来实现。  1,建立测试表和...

    ePCR-System

    使用MySQL Workbench上的远程数据库进行授权时会遇到麻烦,因此无法更新数据库表。 在尝试测试图表之前,请更新以下内容。 用户表 -创建表用户(ID INT AUTO_INCREMENT PRIMARY KEY,用户名VARCHAR(255),密码...

    在Mysql数据库里通过存储过程实现树形的遍历

    关于多级别菜单栏或者权限系统中部门上下级的树形遍历,oracle中有connect by来实现,mysql没有这样的便捷途径,所以MySQL遍历数据表是我们经常会遇到的头痛问题,下面通过存储过程来实现。 1,建立测试表和数据: ...

    MySQL中浮点型转字符型可能会遇的问题详解

    本文主要给大家介绍了MySQL中在将浮点型转字符型的时候遇到的一个问题,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 一 问题描述 今天遇到一个刷数据的需求,是修改产品的重量(字段类型为...

    解析Mysql多表查询的实现

    查询是数据库的核心,下面就为您介绍Mysql多表查询时如何实现的,如果您在Mysql多表查询方面遇到过问题,不妨一看。Mysql多表查询: 代码如下:CREATE TABLE IF NOT EXISTS contact( contact_id int(11) NOT ...

    mysql踩坑之limit与sum函数混合使用问题详解

    数据库版本为mysql 5.7,下面会用一个示例复盘遇到的问题。 问题复盘 本次复盘会用一个很简单的订单表作为示例。 数据准备 订单表建表语句如下(这里偷懒了,使用了自增ID,实际开发中不建议使用自增ID作为订单ID...

    解析MySQL设置当前时间为默认值的方法

    MySQL设置当前时间为默认值的问题我们经常会遇到,下面就为您介绍MySQL设置当前时间为默认值的实现全步骤,希望对您能有所启迪。数据库:test_db1创建表:test_ta1两个字段:id (自增 且为主键),createtime 创建...

    mysql中datetime类型设置默认值方法

    通过navicat客户端修改datetime默认值时,遇到了问题。 数据库表字段类型datetime,原来默认为NULL,当通过界面将默认值设置为当前时间时,提示“1067-Invalid default value for ‘CREATE_TM’”,而建表的时候,则...

    mysql数据库的基本操作语法

    auto_increment自增模式,设置自增后在插入数据的时候就不需要给该列插入值了。 4、 foreign key 约束 外键约束是保证一个或两个表之间的参照完整性,外键是构建于一个表的两个字段或是两个表的两个字段之间的参照...

    mysql 递归查找菜单节点的所有子节点的方法

    背景 ... `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '菜单id', `parent_id` int(11) DEFAULT NULL COMMENT '父节点id', `menu_name` varchar(128) DEFAULT NULL COMMENT '菜单名称', `menu_ur

    数据库设计规范.pdf

    如果没有主键或唯⼀索引,UPDATE/DELETE是通过所有字段来定位操作的⾏,相当于每⾏就是⼀次全表扫描 少数情况可以使⽤联合唯⼀主键,需与DBA协商 对于主键字段值是从其它地⽅插⼊(⾮⾃⼰使⽤AUTO_INCREMENT⽣产),...

Global site tag (gtag.js) - Google Analytics