首页 > 数据库 >MySQL

MySQL

时间:2022-12-15 23:56:59浏览次数:46  
标签:AUTO MySQL insect INCREMENT mysql NULL id

MySQL 序列使用
MySQL 序列是一组整数:1, 2, 3, ...,由于一张数据表只能有一个字段自增主键, 如果你想实现其他字段也实现自动增加,就可以使用MySQL序列来实现。
本章我们将介绍如何使用MySQL的序列。
使用 AUTO_INCREMENT
MySQL 中最简单使用序列的方法就是使用 MySQL AUTO_INCREMENT 来定义序列。
实例
以下实例中创建了数据表 insect, insect 表中 id 无需指定值可实现自动增长。
mysql> CREATE TABLE insect
-> (
-> id INT UNSIGNED NOT NULL AUTO_INCREMENT,
-> PRIMARY KEY (id),
-> name VARCHAR(30) NOT NULL, # type of insect
-> date DATE NOT NULL, # date collected
-> origin VARCHAR(30) NOT NULL # where collected
);
Query OK, 0 rows affected (0.02 sec)
mysql> INSERT INTO insect (id,name,date,origin) VALUES
-> (NULL,'housefly','2001-09-10','kitchen'),
-> (NULL,'millipede','2001-09-10','driveway'),
-> (NULL,'grasshopper','2001-09-10','front yard');
Query OK, 3 rows affected (0.02 sec)
Records: 3 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM insect ORDER BY id;
+----+-------------+------------+------------+
| id | name | date | origin |
+----+-------------+------------+------------+
| 1 | housefly | 2001-09-10 | kitchen |
| 2 | millipede | 2001-09-10 | driveway |
| 3 | grasshopper | 2001-09-10 | front yard |
+----+-------------+------------+------------+
3 rows in set (0.00 sec)
获取AUTO_INCREMENT值
在MySQL的客户端中你可以使用 SQL中的LAST_INSERT_ID( ) 函数来获取最后的插入表中的自增列的值。
在PHP或PERL脚本中也提供了相应的函数来获取最后的插入表中的自增列的值。
PERL实例
使用 mysql_insertid 属性来获取 AUTO_INCREMENT 的值。 实例如下:
$dbh->do ("INSERT INTO insect (name,date,origin)
VALUES('moth','2001-09-14','windowsill')");
my $seq = $dbh->{mysql_insertid};
PHP实例
PHP 通过 mysql_insert_id ()函数来获取执行的插入SQL语句中 AUTO_INCREMENT列的值。
mysql_query ("INSERT INTO insect (name,date,origin)
VALUES('moth','2001-09-14','windowsill')", $conn_id);
$seq = mysql_insert_id ($conn_id);
重置序列
如果你删除了数据表中的多条记录,并希望对剩下数据的AUTO_INCREMENT列进行重新排列,那么你可以通过删除自增的列,然后重新添加来实现。 不过该操作要非常小心,如果在删除的同时又有新记录添加,有可能会出现数据混乱。操作如下所示:
mysql> ALTER TABLE insect DROP id;
mysql> ALTER TABLE insect
-> ADD id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,
-> ADD PRIMARY KEY (id);
设置序列的开始值
一般情况下序列的开始值为1,但如果你需要指定一个开始值100,那我们可以通过以下语句来实现:
mysql> CREATE TABLE insect
-> (
-> id INT UNSIGNED NOT NULL AUTO_INCREMENT,
-> PRIMARY KEY (id),
-> name VARCHAR(30) NOT NULL,
-> date DATE NOT NULL,
-> origin VARCHAR(30) NOT NULL
)engine=innodb auto_increment=100 charset=utf8;
或者你也可以在表创建成功后,通过以下语句来实现:
mysql> ALTER TABLE t AUTO_INCREMENT = 100;

标签:AUTO,MySQL,insect,INCREMENT,mysql,NULL,id
From: https://www.cnblogs.com/xiaoguo-25/p/16986276.html

相关文章

  • 高手必备10大难题:Mysql如何实现RR级隔离时,不会幻读?
    文章很长,而且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面......
  • SQL 经典练习 50 题 (MySQL)
    (一)数据库表的初始化1.数据库表的个数已知有如下4张表:学生表:students(id,name,birth,gender)-->(学号,学生姓名,出生年月,性别)教师表:teachers(id,......
  • MySQL DML语言之插入的两种方法
    DML语言数据操作语言插入insert修改update删除delete语法:insertinto表名(列名,...) values(值1,...);#1.插入的值的类型要与列的类型一致或兼容insertinto......
  • mysql 主从docker-compose 配置
    version:'3'services:#主从mysql配置mysql-master:image:mysql:8.0.24restart:alwayscontainer_name:mysql-masterenvironment:M......
  • Mysql 一些函数的使用
    Mysql一些函数的使用if函数SELECTIF(500<1000,"YES","NO");SELECTIF(500<1000,1,0);数字会一直叠加sum函数round函数四舍五入结合项目中做报表的时候查......
  • MySQL for Mac 安装
    一、服务端安装1、下载网址 http://mysql.com2、拉到最下面选择社区版本  3、选择MySQLCommunityServer版本 选择不登陆,直接安装https://zhuanlan.......
  • 故障处理 | DM 搭建 MySQL 8.0 同步链路报错:code=26005
    作者:MrSylar背景DMv2.0版本引入新特性,试验性支持MySQL8.0。但因为一些强烈的需求,需要尝试DM1.0支持MySQL8.0。所用版本如下:ItemVersionMySQLmysql-community-s......
  • golang操作数据库-mysql&mongodb
    安装驱动goget-ugithub.com/go-sql-driver/mysql初始化模块gomodinitm执行gomodtidygomodtidy导入驱动packagemainimport"fmt"database/sq1'"github.com/go-sql-......
  • MySQL5.7.21开启Gtid配置主从复制
    mysql5.7.21开启Gtid配置主从复制一、环境:mysql主库master:10.0.0.101172.168.1.101mysql从库slave:10.0.0.103172.168.1.103mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz......
  • MySQL 之 数据操作
    一 介绍 在MySQL管理软件中,可以通过SQL语句中的DML语言来实现数据的操作,包括使用INSERT实现数据的插入UPDATE实现数据的更新使用DELETE实现数据的删除使用SELECT查询......