ओरेकल अपने पहचान कॉलम के लिए दृश्यों का उपयोग करता है, अगर हम ऐसा कह सकते हैं।
यदि आपने अपनी तालिका प्राथमिक कुंजी के लिए अनुक्रम सेट किया है, तो आपको एक ट्रिगर भी लिखना होगा जो अनुक्रमांक .extValue या तो आपके प्राथमिक कुंजी फ़ील्ड में डालेगा।
मान लीजिए कि आप इस अवधारणा से पहले ही परिचित हैं, बस अपने अनुक्रम से पूछें, तो आपको अपना जवाब मिल जाएगा। ओरेकल में बहुत अभ्यास किया जाता है अपने आप को एक ऐसा कार्य करना है जो एक आईएनटी वापस कर देगा, फिर आपके कार्य में, आप अपना आईएनएसईआरटी प्रदर्शन करेंगे। यह मानते हुए कि आपने अपना ट्रिगर सही तरीके से सेटअप किया है, फिर आप इसे पूछकर अपने अनुक्रम का मूल्य वापस कर पाएंगे।
यहाँ एक उदाहरण है:
CREATE TABLE my_table (
id_my_table INT PRIMARY KEY
description VARCHAR2(100) NOT NULL
)
CREATE SEQUENCE my_table_seq
MINVALUE 1
MAXVALUE 1000
START WITH 1
INCREMENT BY 2
CACHE 5;
प्रबंधित करने के लिए अपने आप को ऑटो को बढ़ा देते चाहते हैं, यहाँ है कि कैसे:
INSERT INTO my_table (
id_my_table,
description
) VALUES (my_table_seq.NEXTVAL, "Some description");
COMMIT;
दूसरी ओर, यदि आप प्राथमिक के बारे में परवाह नहीं चाहते हैं कुंजी वृद्धि, आप एक ट्रिगर के साथ आगे बढ़ सकते हैं।
CREATE OR REPLACE TRIGGER my_table_insert_trg
BEFORE INSERT ON my_table FOR EACH ROW
BEGIN
SELECT my_table_seq.NEXTVAL INTO :NEW.id_my_table FROM DUAL;
END;
फिर, जब आप डालने रहे हैं, तो आप बस सम्मिलित बयान इस प्रकार लिखें: एक सम्मिलित करने के बाद
INSERT INTO my_table (description) VALUES ("Some other description");
COMMIT;
, मुझे लगता है कि आप चाहते हैं करने के लिए
SELECT my_table_seq.CURRVAL
या आपके अनुक्रम के वास्तविक मूल्य का चयन करने के लिए ऐसा कुछ।
http://www.orafaq.com/wiki/Sequence
http://www.orafaq.com/wiki/AutoNumber_and_Identity_columns
आशा इस मदद करता है:
ये कुछ लिंक मदद करने के लिए कर रहे हैं!
एक टिप्पणी यह सट्टा है, लेकिन Sql सर्वर हा "@@ SCOPE_IDENTITY" इतनी बयान हो सकता है के रूप में के रूप में इस लाना "के लिए में डालने ....; चयन @@ SCOPE_IDENTITY" ... ओरेकल कुछ है समान? – Rob
जो उत्तर होगा :) – andrecarlucci
SQL सर्वर के लिए, मुझे इस सिस्टम वैरिएबल @@ SCOPE_IDENTITY के बारे में पता नहीं है, इस प्रकार मुझे एक IDENT_CURRENT स्केलर फ़ंक्शन के बारे में पता है जो समान करता है (SELECT IDENT_CURRENT (N'TableName ') –