当插入记录时,没有为AUTO_INCREMENT明确指定值,则等同插入NULL值

把0插入AUTO_INCREMENT数据列的效果与插入NULL值一样。但不建议这样做,还是以插入NULL值为好。

如果把一个NULL插入到一个AUTO_INCREMENT数据列里去,MySQL将自动生成下一个序 列编号。默认编号从1开始(如果未指定auto_increment开始值,如果指定开始值,则从指定值开始, 比如AUTO_INCREMENT=4),并1为基数递增。

mysql> create table ss(id int unsigned not null primary key auto_increment, user_name varchar(15) not null);

Query OK, 0 rows affected (0.00 sec)

mysql> insert into ss(id,user_name) values(1, 'jojo');

Query OK, 1 row affected (0.00 sec)

mysql> insert into ss(id,user_name) values(37, 'liz');

Query OK, 1 row affected (0.00 sec)

mysql> select id, user_name from ss;

+----+-----------+

| id | user_name |

+----+-----------+

|  1 | jojo      |

| 37 | liz       |

+----+-----------+

2 rows in set (0.00 sec)

===========================================

mysql> create table uu(id int unsigned not null primary key auto_increment, user_name varchar(15) not null) auto_increment=100;

Query OK, 0 rows affected (0.01 sec)

=================================

mysql> insert into uu(id,user_name) values(1, 'jojo');

Query OK, 1 row affected (0.00 sec)

mysql> insert into uu(id,user_name) values(37, 'liz');

Query OK, 1 row affected (0.00 sec)

mysql> select id, user_name from uu;

+----+-----------+

| id | user_name |

+----+-----------+

|  1 | jojo      |

| 37 | liz       |

+----+-----------+

2 rows in set (0.00 sec)

mysql> desc uu

-> ;

+-----------+------------------+------+-----+---------+----------------+

| Field     | Type             | Null | Key | Default | Extra          |

+-----------+------------------+------+-----+---------+----------------+

| id        | int(10) unsigned | NO   | PRI | NULL    | auto_increment |

| user_name | varchar(15)      | NO   |     | NULL    |                |

+-----------+------------------+------+-----+---------+----------------+

2 rows in set (0.00 sec)

mysql>

当插入记录时,没有为AUTO_INCREMENT明确指定值,则等同插入NULL值

把0插入AUTO_INCREMENT数据列的效果与插入NULL值一样。但不建议这样做,还是以插入NULL值为好。

如果把一个NULL插入到一个AUTO_INCREMENT数据列里去,MySQL将自动生成下一个序 列编号。编号从1开始,并1为基数递增。

因为上面指定了auto_increment=100,所以编号从100开始,递增1。

mysql> insert into uu(user_name) values('Nicky');

Query OK, 1 row affected (0.00 sec)

mysql> select id, user_name from uu;

+-----+-----------+

| id  | user_name |

+-----+-----------+

|   1 | jojo      |

|  37 | liz       |

| 100 | Nicky     |

+-----+-----------+

3 rows in set (0.00 sec)

mysql> insert into uu(user_name) values('Lucy');

Query OK, 1 row affected (0.00 sec)

mysql> select id, user_name from uu;

+-----+-----------+

| id  | user_name |

+-----+-----------+

|   1 | jojo      |

|  37 | liz       |

| 100 | Nicky     |

| 101 | Lucy      |

+-----+-----------+

4 rows in set (0.00 sec)

mysql>

mysql建表设置两个默认CURRENT_TIMESTAMP的技巧

create table t (ids int not null auto_increment primary key,

name1 varchar(20),

t1 timestamp default '0000-00-00 00:00:00',

t2 timestamp default now() on update now())

insert into t(name1) values ('tom')

insert into t(name1,t1, t2) values ('jerry', null, null)

注意:  第二次插入数据时,t1 插入null,数据库中实际却变成了now(), 不知道原因,但是如果修改成

t1 timestamp null,

就是null了

mysql建表auto_increment_mysql create table auto_increment相关推荐

  1. MySQL建表时Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP

    问题描述:在利用MySQL语句建立表结构时出现了Error Code : 1293 Incorrect table definition; there can be only one TIMESTAM ...

  2. mysql 建表 title create table_mysql中create命令建表sql语句

    MySQL中create table语句的基本语法是: 代码如下 CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name [(create_definiti ...

  3. mysql 建表及注释

    1.建表+注释 CREATE TABLE student( id INT PRIMARY KEY AUTO_INCREMENT COMMENT '学号', name VARCHAR(200) COMM ...

  4. mysql建表_128、mysql建表和简单sql

    EMPLOYEES, 有四个字段,EMPLOYEE_ID:员工表(主键).DEPT_ID:部门号.EMPLOYEE_NAME:员工姓名.EMPLOYEE_SALARY:员工工资. 建表语句 CREAT ...

  5. mysql 建表语句 stored as_Druid 解析Hive建表语句解析报错

    Druid 版本: com.alibaba druid-spring-boot-starter 1.2.3 Hive 建表SQL create table ads_data.sale_detail_o ...

  6. MySQL建表(create table)命令详解

    MySQL建表(create table)命令详解 create table命令 强调:使用建表命令之前必须使用use命令选择表所在的数据库.create table命令的格式如下: create t ...

  7. MySQL创建数据表(CREATE TABLE语句)

    在创建数据库之后,接下来就要在数据库中创建数据表.所谓创建数据表,指的是在已经创建的数据库中建立新表. 创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性.引用完整性和域 ...

  8. mysql创建表参数_MySQL创建数据表(CREATE TABLE语句)

    在创建数据库之后,接下来就要在数据库中创建数据表.所谓创建数据表,指的是在已经创建的数据库中建立新表. 创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性.引用完整性和域 ...

  9. mysql创建销售表_MySQL创建数据表(CREATE TABLE语句)

    在创建数据库之后,接下来就要在数据库中创建数据表.所谓创建数据表,指的是在已经创建的数据库中建立新表. 创建数据表的过程是规定数据列的属性的过程,同时也是实施数据完整性(包括实体完整性.引用完整性和域 ...

最新文章

  1. 清除vs2003-vs2008起始页最近打开项目
  2. 【Oracle】redo与undo
  3. 在CentOS 7中使用Sendmail通过PHP发送邮件
  4. sklearn计算准确率,召回率,精确率,F1函数
  5. Anscombe's Quartet 问题
  6. C语言基础编程练习(精选例题+题解)
  7. Java计算机毕业设计树木交易平台源码+系统+数据库+lw文档
  8. java word模板生成pdf,java根据模板生成pdf
  9. 分享:无版权图片素材免费下载网站
  10. 服务器重装Linux系统详细图文教程(centos7)
  11. win10 tagWnd部分成员逆向(窗口隐藏,窗口保护)
  12. 推荐电影 迪士尼经典动画片大全 1937-2008
  13. HR面试程序员,一般第一个问题会问什么
  14. 【深度】广告流量分配HWM算法
  15. python执行命令不连接mumu_Appium连接mumu安卓模拟器(真机)自动化测试
  16. 实现条码枪的无焦点扫码
  17. arduino读取水位传感器的数据显示在基于i2c的1602a上_基于PC-CAN适配卡和总线技术实现潜水电机分布式监控系统的应用方案...
  18. 分享20个无版权的高清无码图库站
  19. MCM/ICM(美国大学生数学建模竞赛)报名指南
  20. Java GridBagLayout(网格包布局管理器)

热门文章

  1. 搞中视频搬运赚钱,只因我用了这些方法
  2. [推荐书籍]12本程序员必备书籍
  3. 如何实现调用阿里云三方的api
  4. 看不见的竞争-谈谈策略设计
  5. [文摘20090201]男女朋友~~需记住亦舒的77句话
  6. 微信小程序模仿拼多多APP地址选择样式
  7. MINIO(一)简介
  8. VI的简单配置及配置文件集锦 z
  9. win10网络重置后,网卡驱动消失且装不上驱动的以及驱动带感叹号的解决办法
  10. 将矩阵的行列互换得到的新矩阵称为转置矩阵