mySQL 中主键值自动增加

转  http://stevenjohn.iteye.com/blog/976397

MySql 主键自动增长

博客分类:

MySQLSQL

创建数据库,创建表。

Sql代码  

  1. mysql> create database ssh2;
  2. Query OK, 1 row affected (0.04 sec)
  3. mysql> use ssh2;
  4. Database changed
  5. mysql> create table user(
  6. -> id integer primary key,
  7. -> firstname varchar(200) not null,
  8. -> lastname varchar(200) not null,
  9. -> age integer
  10. -> );
  11. Query OK, 0 rows affected (0.46 sec)

给主键增加一个自增的功能:

Java代码  

  1. mysql> alter table user modify id integer auto_increment ;
  2. Query OK, 1 row affected (0.28 sec)
  3. Records: 1  Duplicates: 0  Warnings: 0

这样,上面的user表里面的主键,id可以自增了。

给上面的主键id增加默认值和自增功能。

Java代码  

  1. mysql> alter table user modify id integer auto_increment ;
  2. Query OK, 0 rows affected (0.39 sec)
  3. Records: 0  Duplicates: 0  Warnings: 0
  4. mysql> alter table user modify id integer default ‘1‘;
  5. Query OK, 0 rows affected (0.16 sec)
  6. Records: 0  Duplicates: 0  Warnings: 0
  7. mysql> alter table user modify id integer auto_increment ;
  8. Query OK, 1 row affected (0.28 sec)
  9. Records: 1  Duplicates: 0  Warnings: 0

MySql获取系统时间:

Java代码  

  1. mysql> alter table user add createtime timestamp default current_timestamp;
  2. Query OK, 2 rows affected (0.17 sec)
  3. Records: 2  Duplicates: 0  Warnings: 0

MySql设置主键不能为空,还要自动增长(这里没有设置默认值,但是默认是1,从1开始增长。),还要得到系统默认日期:

Java代码  

  1. mysql> create table dd(
  2. -> id int primary key not null auto_increment,
  3. -> name varchar(20),
  4. -> time timestamp default current_timestamp
  5. -> );
  6. Query OK, 0 rows affected (0.10 sec)
  7. mysql> insert into dd(name) values (‘fhihgifds‘);
  8. Query OK, 1 row affected (0.14 sec)
  9. mysql> insert into dd(name) values (‘steven‘);
  10. Query OK, 1 row affected (0.08 sec)
  11. mysql> select * from dd;
  12. +----+-----------+---------------------+
  13. | id | name      | time                |
  14. +----+-----------+---------------------+
  15. |  1 | fhihgifds | 2011-03-27 01:58:46 |
  16. |  2 | steven    | 2011-03-27 01:59:35 |
  17. +----+-----------+---------------------+
  18. 2 rows in set (0.08 sec)
  19. mysql> insert into dd(name) values (‘anthony‘);
  20. Query OK, 1 row affected (0.09 sec)
  21. mysql> select * from dd;
  22. +----+-----------+---------------------+
  23. | id | name      | time                |
  24. +----+-----------+---------------------+
  25. |  1 | fhihgifds | 2011-03-27 01:58:46 |
  26. |  2 | steven    | 2011-03-27 01:59:35 |
  27. |  3 | anthony   | 2011-03-27 02:00:07 |
  28. +----+-----------+---------------------+
  29. 3 rows in set (0.00 sec)
  30. mysql>
时间: 2024-10-26 00:30:27

mySQL 中主键值自动增加的相关文章

【数据库】Mysql中主键的几种表设计组合的实际应用效果

写在前面 前前后后忙忙碌碌,度过了新工作的三个月.博客许久未新,似乎对忙碌没有一点点防备.总结下来三个月不断的磨砺自己,努力从独乐乐转变到众乐乐,体会到不一样的是,连办公室的新玩意都能引起莫名的兴趣了,作为一只忙碌的 “猿” 倒不知正常与否. 咳咳, 正题, 今天要写一篇关于mysql的主键.索引的文章,mysql的研究博主进行还不够深入,今天讨论的主题主要是,主键对增删改查的具体影响是什么? 博主将用具体的实验说明. 如果你不了解主键,你可以先看看下面的小节,否则你可以直接跳转到实验步骤 了解

ODAC(V9.5.15) 学习笔记(十九)主键值自动生成

ODAC支持通过Oracle的序列来自动生成表的主键功能.这个过程允许在客户端自动完成,不需要过多代码.这个对一些要求自动增长字段做主键的场合非常有用.其实现步骤为: 1.数据库必须先建立生成主键的序列. 2.设置数据集的KeySequence属性,指向数据库中的序列. 3.设置数据集的SequenceMode属性,明确是在新增时还是修改时生成序列值,并赋值给数据集的主键. 4.设置数据集的KeyFields属性,指向表的关键字段.如果KeyFields中有多个字段时,序列值会自动赋值给第一个字

MySQL中主键的选择与磁盘性能

偶然看到了“Fotolog: Scaling the World\'s Largest Photo Blogging Community”,才发现很多数据库的优化其实道理都很简单,至高境界是当你面对问题时,是否真正做出了自己的思考,而不仅仅只是经验主义的惯性使然: 本文案例背景介绍:一个图片网站,每张图片都有很多评论.浏览时会执行:SELECT ... FROM ... WHERE photo_identifier = ... ORDER BY posted ... 在“Old Schema”的

mysql设置主键自动增长

创建数据库,创建表. Sql代码   mysql> create database ssh2; Query OK, 1 row affected (0.04 sec) mysql> use ssh2; Database changed mysql> create table user( -> id integer primary key, -> firstname varchar(200) not null, -> lastname varchar(200) not n

mybatis中useGeneratedKeys用法--插入数据库后获取主键值

前言:今天无意在mapper文件中看到useGeneratedKeys这个词,好奇就查了下,发现能解决我之前插入有外键表数据时,这个外键获取繁琐的问题,于是学习敲DEMO记录    在项目中经常需要获取到插入数据的主键来保障后续操作,数据库中主键一般我们使用自增或者uuid()的方式自动生成 问题:对于uuid使用Java代码生成的方式还比较容易控制,然而使用数据库生成的主键,这样我们就需要将插入的数据再查询出来得到主键,某些情况下还可能查询到多条情况,这样就比较尴尬了. 那有什么办法来插入数据

JDBC学习笔记(6)——获取自动生成的主键值&处理Blob&数据库事务处理

获取数据库自动生成的主键 [孤立的技术是没有价值的],我们这里只是为了了解具体的实现步骤:我们在插入数据的时候,经常会需要获取我们插入的这一行数据对应的主键值. 具体的代码实现: 1 /** 2 * 获取数据库自动生成的主键 3 */ 4 @Test 5 public void testGetKeyValues(){ 6 Connection connection=null; 7 PreparedStatement preparedStatement=null; 8 ResultSet rs=n

得到数据库自动生成的主键值

package com.atguigu.jdbc; import java.sql.Connection;import java.sql.Date;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.ResultSetMetaData;import java.sql.Statement; import org.junit.Test; public class JDBCTest { /** * 得到

mysql把主键定义为自动增长标识符类型

分享下mysql中如何把主键定义为自动增长标识符类型. 1.把主键定义为自动增长标识符类型在mysql中,如果把表的主键设为auto_increment类型,数据库就会自动为主键赋值.例如: create table customers(id int auto_increment primary key notnull, name varchar(15)); insert into customers(name) values("name1"),("name2");

mysql insert插入时实现如果数据表中主键重复则更新,没有重复则插入的四种方法

[CSDN下载] Powerdesigner 设计主键code不能重复等问题 [CSDN博客] Oracle中用一个序列给两个表创建主键自增功能的后果 [CSDN博客] MySQL自增主键删除后重复问题 [CSDN博客] mysql 主从复制 双主从复制原理 防止主键重复问题(必看) [CSDN博客] replace into导致mysql自增列导致主键重复问题分析 [CSDN博客] 一个循环更新某库所有表所有非主键列的值方法(sql 2005 & mysql) [CSDN博客] mysql i