13-02-15, 09:18 PM
الحمد لله تم حل المشكله بانشاء ID ترقيم تلقائي بال Oracle 10g
الحل
SQL> CREATE TABLE test (
id NUMBER PRIMARY KEY,
val VARCHAR2(30)
);
CREATE SEQUENCE test_id_seq;
INSERT INTO test(id, val) VALUES (test_id_seq.nextval, 'row1');
Now, let's automate this using a trigger to simulate AutoNumber/Identity functionality:
SQL> CREATE OR REPLACE TRIGGER test_trg
BEFORE INSERT ON test
FOR EACH ROW
BEGIN
SELECT test_id_seq.nextval INTO :new.id FROM dual;
END;
/
Trigger created.
SQL> SHOW ERRORS
No errors.
SQL> INSERT INTO test(val) VALUES ('row2');
1 row created.
SQL> INSERT INTO test(id, val) VALUES (null, 'row3');
1 row created.
SQL> SELECT * FROM test;
ID VAL
---------- ------------------------------
1 row1
2 row2
3 row3
الحل
SQL> CREATE TABLE test (
id NUMBER PRIMARY KEY,
val VARCHAR2(30)
);
CREATE SEQUENCE test_id_seq;
INSERT INTO test(id, val) VALUES (test_id_seq.nextval, 'row1');
Now, let's automate this using a trigger to simulate AutoNumber/Identity functionality:
SQL> CREATE OR REPLACE TRIGGER test_trg
BEFORE INSERT ON test
FOR EACH ROW
BEGIN
SELECT test_id_seq.nextval INTO :new.id FROM dual;
END;
/
Trigger created.
SQL> SHOW ERRORS
No errors.
SQL> INSERT INTO test(val) VALUES ('row2');
1 row created.
SQL> INSERT INTO test(id, val) VALUES (null, 'row3');
1 row created.
SQL> SELECT * FROM test;
ID VAL
---------- ------------------------------
1 row1
2 row2
3 row3
