oracle 用触发器设置了自增序列,插入语句该怎么写?

我写的:Stringsql="insertintoexamplevalues(null,?,?)";其中null为自增id,其他两项为name和age,可是插入的是总是说... 我写的:String sql="insert into example values(null,?,?)";其中null为自增id,其他两项为name和age,可是插入的是总是说“无效的列索引”...我已经设置id自增了啊,把null改为? y也不对啊,去掉null会说什么数值不够,到底该怎么写啊 展开
 我来答
wangzhiqing999
推荐于2016-02-26 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3354万
展开全部
一个完整的例子, 仅供参考:

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
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
heke_asp
2011-09-01 · TA获得超过481个赞
知道小有建树答主
回答量:379
采纳率:50%
帮助的人:233万
展开全部
oracle中没有自动增长列。
实现oracle自动增长列必须用序列,首先创建序列
CREATE SEQUENCE 序列名
INCREMENT BY 1 --每次增长大小
START WITH 1000 --开始大小
NOMAXVALUE
NOCYCLE
CACHE 10;
然后在sql中
insert into table(ID,name) values(序列名.nexeval,name)
如果有什么疑问可以追问。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zjx102938
2011-09-01 · TA获得超过1038个赞
知道小有建树答主
回答量:396
采纳率:100%
帮助的人:294万
展开全部
假设example里有3个字段名1,2,3,其中字段名1要设置自增,序列名称为序列名1
insert into example (字段名1,字段名2,字段名3)
values ('序列名1.nextval','字段2','字段3')
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
谈论用户名
2011-09-01 · TA获得超过1189个赞
知道小有建树答主
回答量:3981
采纳率:21%
帮助的人:1071万
展开全部
oracle中没有自增列这个说法,你所想要的效果,可以用oracle中的序列实现你所要的效果。
关于序列的用法,你可以baidu下。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fyg246
2011-09-01 · TA获得超过862个赞
知道小有建树答主
回答量:1296
采纳率:33%
帮助的人:381万
展开全部
insert into example (列2, 列3) values (值2, 值3)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式