Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

SQLPlus AUTO_INCREMENT त्रुटि

कई लोग इस बारे में शिकायत करेंगे कि यह Oracle में एक मानक विशेषता नहीं है, लेकिन जब यह आपके CREATE TABLE कमांड के बाद दो और कमांड जितना आसान हो जाता है, तो मुझे हर इंसर्ट पर फैंसी SQL का उपयोग करने का कोई अच्छा कारण नहीं दिखाई देता है। पहले एक साधारण टेबल बनाते हैं के साथ खेलो।

SQL> CREATE TABLE test
(id NUMBER PRIMARY KEY,
name VARCHAR2(30));
Table created.

अब हम मान लेंगे कि हम चाहते हैं कि आईडी एक ऑटो इंक्रीमेंट फील्ड हो। पहले हमें मूल्यों को हथियाने के लिए एक अनुक्रम की आवश्यकता होती है।

SQL> CREATE SEQUENCE test_sequence
START WITH 1
INCREMENT BY 1;
Sequence created.

अब हम उस क्रम का उपयोग टेबल पर पहले INSERT ट्रिगर में कर सकते हैं।

CREATE OR REPLACE TRIGGER test_trigger
BEFORE INSERT
ON test
REFERENCING NEW AS NEW
FOR EACH ROW
BEGIN
SELECT test_sequence.nextval INTO :NEW.ID FROM dual;
END;
/


SQL> INSERT INTO test (name) VALUES ('Jon');
1 row created.

SQL> INSERT INTO test (name) VALUES (’Bork’);
1 row created.

SQL> INSERT INTO test (name) VALUES (’Matt’);
1 row created.

SQL> SELECT * FROM test;

ID NAME
———- ——————————
1 Jon
2 Bork
3 Matt


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. प्रश्नों की बाधाओं में तिथियों को सही ढंग से कैसे संभालें

  2. Oracle क्लाइंट को कॉलम नामों के आसपास कोष्ठक की आवश्यकता है?

  3. जेएमटर में जेडीबीसी कनेक्शन का उपयोग करने पर सर्वरआउट कैसे सेट करें?

  4. ORA-00936 ऑरैकल सेलेक्ट स्टेटमेंट में डेट फंक्शन का उपयोग करते समय

  5. Mac OS X पर ROracle स्थापित करना - Oracle से क्या आवश्यक है?