酷!學園

技術討論區 => database 討論版 => 主題作者是: pecoju 於 2002-09-09 13:54

主題: 請問oracle中欄位我想要自動取編號要如何做啊?
作者: pecoju2002-09-09 13:54
1.如題我想在oracle中建資料表,其中有一個欄位要像ACCESS能自動編號
2.還有一個日期欄位想自動設成預設值取系統日期時間,好像不能用=DATE()
   ,請問要如何用呢?
但是要怎麼做呢?請各位大大教教我吧~
主題: 請問oracle中欄位我想要自動取編號要如何做啊?
作者: twu22002-09-09 16:12
1. 沒有這個功能. 如果允許跳號, 可以利用 sequence 這個物件. 如果不允許跳號, 可能要利用 lock 才能做到.
2. ORACLE 是使用 SYSDATE, 不是用 DATE. table 在建立的時候那個欄位要設定 default sysdate 就可以.
主題: 請問oracle中欄位我想要自動取編號要如何做啊?
作者: pecoju2002-09-09 21:26
請問 twu2大大:
     我知道要建立一個sequence ,但是我不知道要如何用在欄位上?所以還是不會
     還有日期的部份我在欄位那邊我把型態選DATE 在Default那一欄直接打sysdate 都沒有任何反應吔~
請問是直接打sysdate   嗎? 前面要加=sysdate 嗎?
請你勿必教教我啊,謝謝了
主題: 請問oracle中欄位我想要自動取編號要如何做啊?
作者: twu22002-09-09 21:58
如下:
代碼: [選擇]

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
主題: 請問oracle中欄位我想要自動取編號要如何做啊?
作者: pecoju2002-09-10 10:07
謝謝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
麻煩大家囉
主題: 請問oracle中欄位我想要自動取編號要如何做啊?
作者: twu22002-09-10 10:33
asp 不熟, 不知道怎麼用. 如果最後出來的是我寫出的那個 sql 指令就可以.

猜測你那個寫法應該是不行.