这几天在做的项目数据库需要用到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
分享到:
相关推荐
前言 最近在工作中又遇到了这个问题,PHP中如何获得刚插入数据的ID(或...注意:如果上一查询没有产生 AUTO_INCREMENT 的 ID,则 mysql_insert_id() 返回 0。 语法 mysql_insert_id(connection) 参数描述 connecti
+ 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 ...
16.3 已知可用 MyODBC一起工作的程序 16.4 怎样填写 ODBC 管理程序的各种域 16.5 怎样在ODBC中获得一个AUTO_INCREMENT列的值 16.6 报告 MyODBC 的问题 17 与一些常用程序一起使用MySQL 17.1...
前言 这篇文章主要涉及到在数据创建表时,遇到ERROR 1215 (HY000): Cannot add foreign key constraint 问题方面的内容,对于在数据创建表时,遇到同样问题感兴趣... `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT
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定义举例如下: 代码如下:CREATE TABLE `example` ( `id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, `created` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, `lastUpdated...
一 创建自定义函数在使用mysql的过程中,mysql自带的函数可能不能完成我们的业务需求,这时就需要自定义函数,例如笔者在开发过程中遇到下面这个问题:mysql表结构如下 代码如下:DROP TABLE IF EXISTS `test`;...
最近遇到几个项目被MySQL的utf8编码坑,想起之前编码问题被坑的惨痛教训,记录一下,警示自己。 曾几何时,每次建库都选utf8,觉得自己比那些用乱七八糟编码的人不知道酷到哪里去了。直到好多年前的某次课程设计做...
前言: 在某些应用场景中,我们... 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
关于多级别菜单栏或者权限系统中部门上下级的树形遍历,oracle中有connect by来实现,mysql没有这样的便捷途径,所以MySQL遍历数据表是我们经常会遇到的头痛问题,下面通过存储过程来实现。 1,建立测试表和...
使用MySQL Workbench上的远程数据库进行授权时会遇到麻烦,因此无法更新数据库表。 在尝试测试图表之前,请更新以下内容。 用户表 -创建表用户(ID INT AUTO_INCREMENT PRIMARY KEY,用户名VARCHAR(255),密码...
关于多级别菜单栏或者权限系统中部门上下级的树形遍历,oracle中有connect by来实现,mysql没有这样的便捷途径,所以MySQL遍历数据表是我们经常会遇到的头痛问题,下面通过存储过程来实现。 1,建立测试表和数据: ...
本文主要给大家介绍了MySQL中在将浮点型转字符型的时候遇到的一个问题,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。 一 问题描述 今天遇到一个刷数据的需求,是修改产品的重量(字段类型为...
查询是数据库的核心,下面就为您介绍Mysql多表查询时如何实现的,如果您在Mysql多表查询方面遇到过问题,不妨一看。Mysql多表查询: 代码如下:CREATE TABLE IF NOT EXISTS contact( contact_id int(11) NOT ...
数据库版本为mysql 5.7,下面会用一个示例复盘遇到的问题。 问题复盘 本次复盘会用一个很简单的订单表作为示例。 数据准备 订单表建表语句如下(这里偷懒了,使用了自增ID,实际开发中不建议使用自增ID作为订单ID...
MySQL设置当前时间为默认值的问题我们经常会遇到,下面就为您介绍MySQL设置当前时间为默认值的实现全步骤,希望对您能有所启迪。数据库:test_db1创建表:test_ta1两个字段:id (自增 且为主键),createtime 创建...
通过navicat客户端修改datetime默认值时,遇到了问题。 数据库表字段类型datetime,原来默认为NULL,当通过界面将默认值设置为当前时间时,提示“1067-Invalid default value for ‘CREATE_TM’”,而建表的时候,则...
auto_increment自增模式,设置自增后在插入数据的时候就不需要给该列插入值了。 4、 foreign key 约束 外键约束是保证一个或两个表之间的参照完整性,外键是构建于一个表的两个字段或是两个表的两个字段之间的参照...
背景 ... `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
如果没有主键或唯⼀索引,UPDATE/DELETE是通过所有字段来定位操作的⾏,相当于每⾏就是⼀次全表扫描 少数情况可以使⽤联合唯⼀主键,需与DBA协商 对于主键字段值是从其它地⽅插⼊(⾮⾃⼰使⽤AUTO_INCREMENT⽣产),...