1、MySQL

1.1、建表

auto_increment:每插入一条数据,客户表(customers)的主键id就自动增1,如下所示

 create table customers    -- 创建客户表
(
id int auto_increment primary key not null, -- auto_increment:自增长
name varchar(15)
);

1.2、测试(实例)

 insert into customers(name) values("张三"),("李四");-- 向客户表中插入数据

 select * from customers; -- 查询客户表

2、Oracle      

2.1、建表

 create table student
(
id   number not null, -- 主键
name   varchar2(20),
birthday  date,
age     number(20),
7 phone varchar2(60),
8 email varchar2(10)
9 )
alter table student add constraint student_pk primary key (id); -- 主键

2.2、创建序列

注:Oracle中的序列并不是和MySQL中的自增长一样,连续性的,而是跳跃、不连续性的。如要使他连续,则必须指定相关的属性和值。

 /*
--创建序列Sequence
create sequence student_id
minvalue 1 --最小值
nomaxvalue --不设置最大值(由机器决定),或 根据表字段的值范围设置 maxvalue
6 maxvalue 99999999 -- 最大值
start with 1 --从1开始计数,数值可变
increment by 1 --每次加1,数值可变
nocycle --一直累加,不循环
nocache; --不建缓冲区。 如果建立cache那么系统将自动读取cache值个seq,这样会加快运行速度;如果在单机中使用cache,或者oracle死了,那么下次读取的seq值将不连贯,所以不建议使用cache。
*/

-- 创建序列
create sequence student_id
minvalue 1
17 maxvalue 999
increment by 1
start with 1
nocycle
nocache;

Oracle sequence序列的创建、修改及删除 详解:http://www.cnblogs.com/dshore123/p/8269537.html

2.3、创建触发器 (以下三种方式都行)

格式:

  create or replace trigger 触发器名
before insert on 表名 for each row when (new.表的自增长字段 is null)
begin
select 序列名.Nextval into:new.表的自增长字段 from dual;
end;
 -- 方式一
create or replace trigger tg_insertId
before insert on student for each row when (new.id is null) -- 当id为NULL时触发
begin
select student_id.Nextval into:new.id from dual;
end;
7
8
9 -- 方式二 (我比较喜欢这种)
10 create or replace trigger tg_insertId
11 before insert on student for each row
12 begin
13 select student_id.Nextval into:new.id from dual;
end; 17 -- 方式三
create or replace trigger tg_insertId
  before insert on student for each row
declare -- 声明
  -- 局部变量(student表里的字段)
begin
  if updating then
24       insert into student
       values(student_id.nextval,
              :old.name, -- 对应student表中的字段
27          :old.birthday,
28          :old.age,
          :old.phone,
          :old.email
31              );
32  end if;
end;

2.4、测试(实例) 注:由于创建了触发器,所以下面的插入语句,不需要再写上id这一项

 INSERT INTO student(name,birthday,age,phone,email)
VALUES('zhangsan',to_date('2018-01-10 19:55:45','yyyy-MM-dd hh24:mi:ss'),18,'','123456789@qq.com'); -- 插入数据
3
4 INSERT INTO student(name,birthday,age,phone,email)
5 VALUES('zhangsan',to_date('2018-01-11 19:55:45','yyyy-MM-dd hh24:mi:ss'),20,'13510086110','123456789@qq.com'); select * from student; -- 查询学生表

或者

  insert into student(seq,name,birthday,age,phone,email)     -- 这是带上“自增长主键(seq)”的写法
   values(student_id.Nextval,'zhangsan',to_date('2018-01-10 19:55:45','yyyy-MM-dd hh24:mi:ss'),18,'','123456789@qq.com');

原创作者:DSHORE

作者主页:http://www.cnblogs.com/dshore123/

原文出自:http://www.cnblogs.com/dshore123/p/8267240.html

欢迎转载,转载务必说明出处。(如果本文对您有帮助,可以点击一下右下角的 推荐,或评论,谢谢!

 
 
 
G
M
T
 
检测语言
世界语
中文简体
中文繁体
丹麦语
乌克兰语
乌兹别克语
乌尔都语
亚美尼亚语
伊博语
俄语
保加利亚语
僧伽罗语
克罗地亚语
冰岛语
加利西亚语
加泰罗尼亚语
匈牙利语
南非祖鲁语
卡纳达语
印地语
印尼巽他语
印尼爪哇语
印尼语
古吉拉特语
哈萨克语
土耳其语
塔吉克语
塞尔维亚语
塞索托语
威尔士语
孟加拉语
宿务语
尼泊尔语
巴斯克语
布尔语(南非荷兰语)
希伯来语
希腊语
德语
意大利语
意第绪语
拉丁语
拉脱维亚语
挪威语
捷克语
斯洛伐克语
斯洛文尼亚语
斯瓦希里语
旁遮普语
日语
格鲁吉亚语
毛利语
法语
波兰语
波斯尼亚语
波斯语
泰卢固语
泰米尔语
泰语
海地克里奥尔语
爱尔兰语
爱沙尼亚语
瑞典语
白俄罗斯语
立陶宛语
索马里语
约鲁巴语
缅甸语
罗马尼亚语
老挝语
芬兰语
苗语
英语
荷兰语
菲律宾语
葡萄牙语
蒙古语
西班牙语
豪萨语
越南语
阿塞拜疆语
阿尔巴尼亚语
阿拉伯语
韩语
马其顿语
马尔加什语
马拉地语
马拉雅拉姆语
马来语
马耳他语
高棉语
齐切瓦语
  世界语
中文简体
中文繁体
丹麦语
乌克兰语
乌兹别克语
乌尔都语
亚美尼亚语
伊博语
俄语
保加利亚语
僧伽罗语
克罗地亚语
冰岛语
加利西亚语
加泰罗尼亚语
匈牙利语
南非祖鲁语
卡纳达语
印地语
印尼巽他语
印尼爪哇语
印尼语
古吉拉特语
哈萨克语
土耳其语
塔吉克语
塞尔维亚语
塞索托语
威尔士语
孟加拉语
宿务语
尼泊尔语
巴斯克语
布尔语(南非荷兰语)
希伯来语
希腊语
德语
意大利语
意第绪语
拉丁语
拉脱维亚语
挪威语
捷克语
斯洛伐克语
斯洛文尼亚语
斯瓦希里语
旁遮普语
日语
格鲁吉亚语
毛利语
法语
波兰语
波斯尼亚语
波斯语
泰卢固语
泰米尔语
泰语
海地克里奥尔语
爱尔兰语
爱沙尼亚语
瑞典语
白俄罗斯语
立陶宛语
索马里语
约鲁巴语
缅甸语
罗马尼亚语
老挝语
芬兰语
苗语
英语
荷兰语
菲律宾语
葡萄牙语
蒙古语
西班牙语
豪萨语
越南语
阿塞拜疆语
阿尔巴尼亚语
阿拉伯语
韩语
马其顿语
马尔加什语
马拉地语
马拉雅拉姆语
马来语
马耳他语
高棉语
齐切瓦语
         
 
 
 
文本转语音功能仅限200个字符
 
  选项 : 历史 : 反馈 : Donate 关闭

最新文章

  1. acm结束了
  2. CSS魔法堂:重拾Border之——解构Border
  3. Java JDK配置环境变量
  4. WebView cookie 管理
  5. jquery+jplayer实现歌词同步的mp3音乐播放器效果
  6. BZOJ1070 [SCOI2007]修车
  7. [转]虚拟机VMware3种网络模式(桥接、nat、Host-only)的工作原理
  8. Android数据存储之sharedpreferences与Content Provider
  9. Java缓存学习之三:CDN缓存机制
  10. 用Cookie和Session实现用户登录 函数
  11. Nuget介绍及使用技巧
  12. js与juery基础知识对比(一)---2017-05-06
  13. 8、flask之flask-script组件
  14. Bootstrap3 表格-条纹状表格
  15. [转]Android长度单位详解
  16. 教你一步步发布一个开源库到 JCenter
  17. Loj #3093. 「BJOI2019」光线
  18. git revert用法以及与git reset的区别
  19. Openvswitch手册(7): Interfaces
  20. UVA1347-Tour(动态规划基础)

热门文章

  1. Qt浅谈之总结(整理)
  2. Codeforces707Div2
  3. Linux内核分析4
  4. Linux内核分析8
  5. 【bzoj3796】Mushroom追妹纸
  6. ctsc2009 移民站选址
  7. socketpair + signal + select 的套路
  8. 【题解】Popping Balls AtCoder Code Festival 2017 qual B E 组合计数
  9. array_intersect
  10. 装饰器--decorator1