MySQL和Oracle中设置某个字段自增

[size=large][size=small]MySQL
create table test(id int(3) auto_incrementprimarykey,tname char(10));
注意自增的字段必须是主键

Oracle:
前提是: create table test(id char(5),namechar(10));
(1)建立sequence
create sequence test_id increment by 1 startwith 1;
(2)建立触发器
A) 执行命令ed test打开窗口,填写以下内容
create or replace trigger test_trigger
before insert
on test
for each row
declare
primary_key_value char(5);
begin
select test_id.nextval into primary_key_value from dual;
:new.id:=primary_key_value ;
end;
B)保存后,执行get test
C)然后执行/
如果/执行有错误的话,可以通过show error来显示错误并修改。

(3)
SQL> insert into test(name)values('one');

已创建 1 行。
[color=orange][/color][color=yellow][/color]
SQL> select * fromtest;

ID NAME
----- ----------
1 one

[/size][align=center][/align][size=x-large][/size][/size]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,针对你的问题,我可以为你解答一下: 对于 Oracle 数据库,一般使用序列(Sequence)来实现 id 自增。具体步骤如下: 1. 创建序列 ``` CREATE SEQUENCE sequence_name START WITH 1 INCREMENT BY 1 MAXVALUE 999999999 MINVALUE 1 NOCACHE NOCYCLE; ``` 其,`sequence_name` 是序列名称,`START WITH` 是序列起始值,`INCREMENT BY` 是序列递增值,`MAXVALUE` 是序列最大值,`MINVALUE` 是序列最小值,`NOCACHE` 表示不使用缓存,`NOCYCLE` 表示不循环。 2. 在表使用序列 ``` CREATE TABLE table_name ( id NUMBER(10) PRIMARY KEY, column1 VARCHAR2(50), column2 VARCHAR2(50) ); CREATE TRIGGER trigger_name BEFORE INSERT ON table_name FOR EACH ROW BEGIN SELECT sequence_name.NEXTVAL INTO :new.id FROM dual; END; ``` 其,`table_name` 是表名,`id` 是自增字段名,`column1` 和 `column2` 是其他字段名,`trigger_name` 是触发器名称,`BEFORE INSERT ON table_name` 表示在插入数据之前触发,`FOR EACH ROW` 表示每行触发一次,`:new.id` 表示新插入数据的自增字段值。 对于 MySQL 数据库,一般使用自增主键(AUTO_INCREMENT)来实现 id 自增。具体步骤如下: 1. 创建表 ``` CREATE TABLE table_name ( id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY, column1 VARCHAR(50), column2 VARCHAR(50) ); ``` 其,`table_name` 是表名,`id` 是自增字段名,`column1` 和 `column2` 是其他字段名,`UNSIGNED` 表示无符号,`AUTO_INCREMENT` 表示自增。 2. 插入数据 ``` INSERT INTO table_name (column1, column2) VALUES ('value1', 'value2'); ``` 其,`column1` 和 `column2` 是列名,`'value1'` 和 `'value2'` 是列的值,自增字段 id 会自动递增。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值