आपके कथन में बहुत कुछ गलत है।
A_EMP_ID CHAR 5 BYTE
गुम है(..)
लंबाई बाधा के आसपास- आप निश्चित रूप से
CHAR
. का उपयोग नहीं करना चाहते हैंadmin_title
. के लिए . उपयोग करेंVARCHAR2
इसके बजाय। DIVERSITY_TRAINING_CERT = 'N','Y'
मान्य अभिव्यक्ति नहीं है। आप शायदdiversity_training_cert IN ('N','Y')
. चाहते हैं- जबकि
FOREIGN KEY (a_emp_id) REFERENCES admin(a_emp_id)
वाक्य रचनात्मक रूप से सही है, इसका कोई मतलब नहीं है। मुझे लगता है कि आप एकmanager_id
want चाहते हैं या कुछ इसी तरह। और फिरFOREIGN KEY (manager_id) REFERENCES admin(a_emp_id)
जैसा कुछ .
वैकल्पिक रूप से आप किसीemployee
को संदर्भित करना चाहते हैं मेज़। उस स्थिति मेंa_emp_id
डेटा प्रकार उस तालिका के पीके कॉलम के प्रकार से मेल खाना चाहिए। -
CONSTRAINT ADMIN_END_DATE CHECK (<= 'ADMIN_START_DATE'),
तीन त्रुटियां हैं:- एक कॉलम सिंगल कोट्स में संलग्न नहीं होना चाहिए। तो यह
admin_start_date
होना चाहिए नहीं'admin_start_date'
- एक चेक बाधा के लिए एक उचित स्थिति की आवश्यकता होती है।
<= admin_start_date
कोई शर्त नहीं है, आपको कॉलम की तुलना किसी चीज़ से करनी होगी। संभावितadmin_end_date
- आपके पास अल्पविराम है
,
उस अभिव्यक्ति के बाद जो गलत भी है।
- एक कॉलम सिंगल कोट्स में संलग्न नहीं होना चाहिए। तो यह
यह सब एक साथ रखने पर आपको मिलता है:
CREATE TABLE admin
(
a_emp_id CHAR(5 BYTE) NOT NULL,
admin_start_date DATE DEFAULT SYSDATE NOT NULL,
admin_end_date DATE NULL,
diversity_training_cert CHAR(1 BYTE) DEFAULT 'N' NOT NULL,
admin_title VARCHAR2(40 BYTE) NULL,
CONSTRAINT admin_pk
PRIMARY KEY(a_emp_id),
CONSTRAINT admin_fk1
FOREIGN KEY (a_emp_id) REFERENCES admin(a_emp_id),
CONSTRAINT admin_diversity_cert
CHECK (diversity_training_cert IN ('N','Y')),
CONSTRAINT admin_end_date
CHECK ( admin_end_date <= admin_start_date)
);
असंबंधित, लेकिन:अपर केस में सब कुछ लिखने की बिल्कुल भी आवश्यकता नहीं है।