技術討論區 > database 討論版
請問oracle中欄位我想要自動取編號要如何做啊?
pecoju:
1.如題我想在oracle中建資料表,其中有一個欄位要像ACCESS能自動編號
2.還有一個日期欄位想自動設成預設值取系統日期時間,好像不能用=DATE()
,請問要如何用呢?
但是要怎麼做呢?請各位大大教教我吧~
twu2:
1. 沒有這個功能. 如果允許跳號, 可以利用 sequence 這個物件. 如果不允許跳號, 可能要利用 lock 才能做到.
2. ORACLE 是使用 SYSDATE, 不是用 DATE. table 在建立的時候那個欄位要設定 default sysdate 就可以.
pecoju:
請問 twu2大大:
我知道要建立一個sequence ,但是我不知道要如何用在欄位上?所以還是不會
還有日期的部份我在欄位那邊我把型態選DATE 在Default那一欄直接打sysdate 都沒有任何反應吔~
請問是直接打sysdate 嗎? 前面要加=sysdate 嗎?
請你勿必教教我啊,謝謝了
twu2:
如下:
--- 代碼: ---
CREATE SEQUENCE T_SEQ INCREMENT BY 1
START WITH 1
MAXVALUE 1.0E28 MINVALUE 1 NOCYCLE
CACHE 20 NOORDER;
CREATE TABLE TT (F1 NUMBER(10) NOT NULL,
F2 DATE DEFAULT SYSDATE NOT NULL);
insert into tt (F1) values (t_seq.nextval);
insert into tt (F1) values (t_seq.nextval);
insert into tt (F1) values (t_seq.nextval);
insert into tt (F1) values (t_seq.nextval);
SQL> select f1, to_char(f2, 'YYYY/MM/DD HH:MI:SS') from tt;
F1 TO_CHAR(F2,'YYYY/MM/DDHH:MI:SS')
---------- --------------------------------------
1 2002/09/09 09:57:23
2 2002/09/09 09:57:35
3 2002/09/09 09:57:35
4 2002/09/09 09:57:36
--- 程式碼結尾 ---
pecoju:
謝謝TWU2大大的幫忙
那我想再請問TWU2大大:
因為我是ASP程式要去INSERT 資料進入資料庫
那是不是每次要INSERT 一筆資料都要給它t_seq.nextval
像 insert into tt (F1) values (t_seq.nextval); 這樣
那如果我先 select * from TT
再用 addnew的可以嗎
像下面這樣
set rs=server.createobject("ADODB.recordset")
SQL="select * from tt"
rs.open SQL,cn,2,2
rs.addnew
rs("f1")=t_seq.nextval
rs.update
麻煩大家囉
導覽
[0] 文章列表
[#] 下頁
前往完整版本