الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

اريد اضافة عمود لجدول به داتا بحيث يكون هذا العمود مفتاح اساسى

Featured Replies

بتاريخ:

اخوانى الكرام الموضوع باختصار هو ان فى جدول فيه بيانات معجونه ومفيش فيه مفتاح اساسى المطلوب
اريد اضافة عمود لجدول به داتا بحيث يكون هذا العمود مفتاح اساسى بحيث يبدأ بالرقم 1 وهكذا يعنى مسلسل

بتاريخ:

في قدامك أكثر من حل
أحدهما انك تضيف عمود عادي أولا الى الجدول ومن ثم تدخل فيه البيانات وأخيرا تجعله مفتاح رئيسي كالآتي :
1 اضافة عمود جديد الى الجدول:

alter table table_name add(col_name number)



2 اضافة البيانات وهي كما أفهم أنها متسلسلة كعداد يعني

update table_name 
   set col_name = rownum



3 اعلان هذا العمود كمفتاح أساسي للجدول

alter table table_name add constraint col_pk primary key(col_name )



بعد ذلك سبكون لهذا الجدول مفتاح أساسي.

بتاريخ:

ضيف الحقل الذي تريد وضعه مفتاح أساسي

[b]ALTER TABLE[/b] TABLE_NAME [b]ADD[/b] COLUMN_NAME DATA TYPE


وقم بتعريف PRIMARY KEY CONSTRAINT

[b]ALTER TABLE[/b] TABLE_NAME [b]ADD CONSTRAINT[/b] PK_NAME [b]PRIMARY KEY[/b] (COLUMN NAME)


ثانيا: قم ببناء SEQUENCE

CREATE SEQUENCE seqname [ INCREMENT BY increment ]
        [ MINVALUE minvalue ] [ MAXVALUE maxvalue ]
        [ START WITH start ] [ CACHE cache ] [ CYCLE ]




قم بعمل PROCEDURE يقوم باضافة قيم ال SEQUENCE على الحق الموجود بالجدول
مثلا: لنفترض انك قمت بتعريف الحق SERIAL على جدول EMP
وال SEQUENCE اسمه SERIAL_SEQ
يكون الPROCEDURE كالتالي:

CREATE OR REPLACE PROCEDURE ADD_SERIAL_TO_EMP AS V_SERIAL NUMBER;
CURSOR C1 IS SELECT * FROM EMP; BEGIN FOR I IN C1 LOOP
SELECT SERIAL_SEQ.NEXTVAL INTO V_SERIAL FROM DUAL;
UPDATE EMP
SET SERIAL = V_SERIAL 
WHERE EMPNAME = I.EMPNAME
(بالنسبة لجملة WHERE) ضع جميع الحقول واربطهم بالCURSOR
END LOOP;
END;


ان شاء الله تكون استفدت

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

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

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

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

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

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.