oracle序列已经创建了。 现在我要插入的时候id为自动增长 ,insert的时候插入怎么写?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle序列已经创建了。 现在我要插入的时候id为自动增长 ,insert的时候插入怎么写?相关的知识,希望对你有一定的参考价值。
直接 序列号.nexvalues不行的。。
错误消息
调用代码:
begin
SP_T_mac_Info('123','321','1','0',sysdate,'N','demo',sysdate,SEQ_list.Nextval,'a');
END;
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追问
请问可以加下您QQ吗
参考技术B insert into 表 values(id.nextval) //不是id.nexvalues,ok?还有 lz最好提问时贴错误,或你的代码,这个sql语句只要正确不可能不行 只可能lz写错了,果断要求贴代码和贴图追问错误消息
调用代码:
begin
SP_T_mac_Info('123','321','1','0',sysdate,'N','demo',sysdate,SEQ_list.Nextval,'a');
END;
CREATE OR REPLACE TRIGGER TBLPOWERFACTORVALUELIMIT_TRIG
BEFORE INSERT ON TBLPOWERFACTORVALUELIMIT
REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
DECLARE
BEGIN
SELECT TBLPOWERFACTORVALUELIMIT_SEQ.NEXTVAL INTO :NEW.LIMITID FROM DUAL;
END; 参考技术D 贴错误消息啊
C++ 插入排序,冒泡排序和选择排序
刚试着重写/温习了3个最简单的排序算法。
插入排序:依次将右边未排序的元素插入到左边已排序序列的合适位置。
时间复杂度:O(n^2)
float* sort_insertion(float a[], int len_a)
{
/*插入排序 类似我们排序扑克牌*/
for(int i=1; i < len_a; i++)
{
float to_insert = a[i];
// 索引0到 i-1 已排好序
int j;
for(j = i-1; a[j] > to_insert and j >=0 ; j--)
a[j+1] = a[j];//大的往后退一位
a[j+1] = to_insert;//a[j] > to_insert 不成立时 j+1的值即是待插入的位置
}
return a;
}
冒泡排序和选择排序大学都学过,不再赘述。
冒泡排序:
时间复杂度:O(n^2)
float* sort_bubble(float a[], int len_a)
{
/*冒泡排序 依次比较相邻的两个元素,如果顺序错误就将它们的位置交换 */
float temp;
for(int i=0; i < len_a-1; i++)
{
for(int j =0 ;j<len_a-1-i; j++)
{
if (a[j] > a[j+1])
{
temp = a[j];
a[j] = a [j+1];
a[j+1] = temp;
}
}
}
return a;
}
选择排序:
时间复杂度:O(n^2)
float* sort_selection(float a[], int len_a)
{
/*选择排序 依次将左边未排序序列中的最大元素,存放到右边已排序序列的左端 */
int j;
float temp;
for(int i= len_a-1; i >= 0; i--)
{
//未排序序列:a[0]到a[i]
//找到未排序序列的最大元素的位置
int maxIndex = 0;
for(j=1; j <= i; j++)
{
if (a[j] > a[maxIndex])
maxIndex = j;
}
//交换
temp = a[i];
a[i] = a[maxIndex];
a[maxIndex] = temp;
}
return a;
}
随机数组生成部分的代码如下:
using namespace std;
float* sort_insertion(float a[], int len_a);
float* sort_bubble(float a[], int len_a);
float* sort_selection(float a[], int len_a);
int main()
{
const int len_b =100;
float b[len_b];
//int len_b = sizeof(b)/sizeof(b[0]);//求数组长度
srand(time(NULL)); //srand()设置随机种子seed, seed 随时间变化
for (int i=0; i<len_b; i++)
{
b[i] = rand()%101 -50.0f;//随机数 -50 到 50
//cout <<b[i]<<endl;
}
sort_bubble(b,len_b);
//cout<<endl;
for (int i=0;i<len_b;i++)
cout<<b[i]<<endl;
return 0;
}
以上是关于oracle序列已经创建了。 现在我要插入的时候id为自动增长 ,insert的时候插入怎么写?的主要内容,如果未能解决你的问题,请参考以下文章