الانتقال إلى المحتوى

وين المشكلة Invalid Identifier


alkhatry

Recommended Posts

مرحبا شباب
عندي مشكلة لما اعمل تنفيذ لعمل جدول حاولت اعيد واعدل بس بدون فايده
ممكن اعرف وين المشكله
ولكم الشكر مقدما


1 create table ward_requist(requist_no number(6) not null primary key,
2 requist_by varchar2(20),
3 FOREIGN KEY (w_no) REFERENCES wards (w_no) ON DELETE CASCADE,
4 item_no number(20),
5 item_name varchar2(20),
6 description varchar2(50),
7 dosage varchar2(20),
8 moa varchar2(20),
9 unit_price number(10),
10 qty number(10),
11* req_date DATE)
SQL> /
FOREIGN KEY (w_no) REFERENCES wards (w_no) ON DELETE CASCADE,
*
ERROR at line 3:
ORA-00904: "W_NO": invalid identifier

رابط هذا التعليق
شارك

SQL> create table wards(w_no number primary key);

Table created.

SQL> create table ward_requist(
 2  requist_no number(6) not null primary key,
 3  requist_by varchar2(20),
 4  item_no number(20),
 5  item_name varchar2(20),
 6  description varchar2(50),
 7  dosage varchar2(20),
 8  moa varchar2(20),
 9  unit_price number(10),
10  qty number(10),
11  req_date DATE,
12  w_no number,
13  FOREIGN KEY (w_no) REFERENCES wards (w_no) ON DELETE CASCADE)
14  /

Table created.  

رابط هذا التعليق
شارك

السلام عليكم
بسم الله الرحمن الرحيم وبحمده
شكرا اخ موودي الحل لاغبار عليه ولكن اسمح لي التعقيب على جوابك للاسفادة فقط
يمكن تعيين المفتاح الغريب على مستوى العمودcolumn وعلى مستوى الجدول ويمكن اضافته بعد انشاء الجدول
أما على مستوى العمود فلا نذكر تعبيرForeign key وانما تكون العبارة كالآتي:
column_name col_type CONSTRAINT constrant_name REFERENCES table_name(col_name)

وهاك مثال عنها:

create table ward_requist
(requist_no number(6) not null primary key,
w_no number Constraint w_no_fk REFERENCES wards (w_no) ON DELETE CASCADE)
-----------------------------
أما على مستوى الجدول فهي الطريقة التي استخدمها الأخ موودي وذلك بذكر تعبير Foreign key
وتتميز أنها يمكن أن تدمج أكثر من عمود كمفتاح غريب
ملاحظة:يمكن تحديد اسم القيد كسابقتها بعبارة Constraint كمايلي:

create table ward_requist
(requist_no number(6) not null primary key,
w_no number,
CONSTRAINT w_no_fk FOREIGN KEY (w_no) REFERENCES wards (w_no) ON DELETE CASCADE)
----------------------------------------------
حيث من المفيد بعض الأحيان تحديد اسم القيد للاستخدام فيما بعد في التعطيل والتفعيل غير ذلك وان
لم تذكره أنت فان محرك أوراكل سيعطيه اسم من عنده

رابط هذا التعليق
شارك

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   تمت استعادة المحتوى السابق الخاص بك.   مسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

جاري التحميل
×
×
  • أضف...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية