oracle建表id自动增长

比如我建立了user表,表里面有id、name字段。建立了student表,表里面有id、name字段,怎样实现user表里面的id自动增长。非常感谢!!!... 比如我建立了user表,表里面有id、name字段。建立了student表,表里面有id、name字段,怎样实现user表里面的id自动增长。非常感谢!!! 展开
 我来答
去者丁8056
推荐于2017-11-26 · 超过60用户采纳过TA的回答
知道答主
回答量:102
采纳率:50%
帮助的人:108万
展开全部
SQL> CREATE SEQUENCE test_sequence2
2 increment by 1 -- 每次递增1
3 start with 1 -- 从1开始
4 nomaxvalue -- 没有最大值
5 minvalue 1 -- 最小值=1
6 NOCYCLE; -- 不循环

Sequence created.

SQL> CREATE TABLE test_create_tab2 (
2 id INT,
3 val VARCHAR(10),
4 PRIMARY KEY (id)
5 );

Table created.

SQL> CREATE OR REPLACE TRIGGER BeforeTestCreate2Insert
2 BEFORE INSERT ON test_create_tab2
3 FOR EACH ROW
4 BEGIN
5 SELECT test_sequence2.nextval INTO :new.id FROM dual;
6 END;
7 /

Trigger created.

SQL> INSERT INTO test_create_tab2(val) VALUES ('NO id');

1 row created.

SQL> INSERT INTO test_create_tab2(id, val) VALUES (1, 'id no use');

1 row created.

SQL> SELECT * FROM test_create_tab2;

ID VAL
---------- --------------------
1 NO id
2 id no use
希望能解决您的问题。
ZESTRON
2024-09-04 广告
在Dr. O.K. Wack Chemie GmbH,我们高度重视ZESTRON的表界面分析技术。该技术通过深入研究材料表面与界面的性质,为提升产品质量与可靠性提供了有力支持。ZESTRON的表界面分析不仅涵盖了相变化、化学反应、吸附与解吸... 点击进入详情页
本回答由ZESTRON提供
小铺莹的飞180
2014-06-15 · TA获得超过546个赞
知道答主
回答量:144
采纳率:50%
帮助的人:143万
展开全部
SQL> CREATE SEQUENCE test_sequence2
2 increment by 1 -- 每次递增1
3 start with 1 -- 从1开始
4 nomaxvalue -- 没有最大值
5 minvalue 1 -- 最小值=1
6 NOCYCLE; -- 不循环

Sequence created.

SQL> CREATE TABLE test_create_tab2 (
2 id INT,
3 val VARCHAR(10),
4 PRIMARY KEY (id)
5 );

Table created.

SQL> CREATE OR REPLACE TRIGGER BeforeTestCreate2Insert
2 BEFORE INSERT ON test_create_tab2
3 FOR EACH ROW
4 BEGIN
5 SELECT test_sequence2.nextval INTO :new.id FROM dual;
6 END;
7 /

Trigger created.

SQL> INSERT INTO test_create_tab2(val) VALUES ('NO id');

1 row created.

SQL> INSERT INTO test_create_tab2(id, val) VALUES (1, 'id no use');

1 row created.

SQL> SELECT * FROM test_create_tab2;

ID VAL
---------- --------------------
1 NO id
2 id no use
以上回答你满意么?
追问
非常感谢!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
手机用户66530
2014-06-15 · 超过65用户采纳过TA的回答
知道答主
回答量:112
采纳率:0%
帮助的人:120万
展开全部
SQL> CREATE SEQUENCE test_sequence2
2 increment by 1 -- 每次递增1
3 start with 1 -- 从1开始
4 nomaxvalue -- 没有最大值
5 minvalue 1 -- 最小值=1
6 NOCYCLE; -- 不循环

Sequence created.

SQL> CREATE TABLE test_create_tab2 (
2 id INT,
3 val VARCHAR(10),
4 PRIMARY KEY (id)
5 );

Table created.

SQL> CREATE OR REPLACE TRIGGER BeforeTestCreate2Insert
2 BEFORE INSERT ON test_create_tab2
3 FOR EACH ROW
4 BEGIN
5 SELECT test_sequence2.nextval INTO :new.id FROM dual;
6 END;
7 /

Trigger created.

SQL> INSERT INTO test_create_tab2(val) VALUES ('NO id');

1 row created.

SQL> INSERT INTO test_create_tab2(id, val) VALUES (1, 'id no use');

1 row created.

SQL> SELECT * FROM test_create_tab2;

ID VAL
---------- --------------------
1 NO id
2 id no use
这样可以么?
追问
非常感谢!!!
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
红草123
2014-06-15 · TA获得超过202个赞
知道小有建树答主
回答量:267
采纳率:100%
帮助的人:165万
展开全部
可以使用Oracle的sequence实现自增长。
追问
非常感谢!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式