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

  • تسجيل الدخول عبر الفيس بوك تسجيل الدخول عبر تويتر Log In with LinkedIn Log In with Google      تسجيل دخول    
  • إنشاء حساب

صورة
- - - - -

الزياده التلقائيه في الأوراكل ؟


3 رد (ردود) على هذا الموضوع

#1 mwr21

mwr21

    عضو

  • الأعضــاء
  • 2 مشاركة

تاريخ المشاركة 09 April 2006 - 02:50 PM

أصدقائي مرحبا

أحتاج مساعده أنشأه جدول و فيه المفاتح الرئيسي هو عدد ولكن أريد أن يزداد تلقائيا

كما في البردوكس إسمه (Autoincrement)

و أن يكون العدد المضاف يحافظ على عدم تكرار هذا العدد


أرجو منكم المساعده

#2 عبدالله أسعد

عبدالله أسعد

    مشرف سابق وعضو مميز

  • المجموعة الماسية
  • 1,194 مشاركة

تاريخ المشاركة 09 April 2006 - 03:22 PM

The syntax for a sequence is:

CREATE SEQUENCE sequence_name
MINVALUE value
MAXVALUE value
START WITH value
INCREMENT BY value
CACHE value;

For example:

CREATE SEQUENCE supplier_seq
MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
الدعاء نجى يونس وأهلك قوم نوح ورفع قدر سليمان وأظهر دين محمد عليه الصلاة و السلام فلا تتردد و قل يارب يارب يارب
Oracle DBA@Amig.com.eg

#3 mwr21

mwr21

    عضو

  • الأعضــاء
  • 2 مشاركة

تاريخ المشاركة 13 April 2006 - 01:07 AM

شكرا لك على الرد ولقد أفادني ولكن كيف يتم إستدعاء هذه السلاسل

وما هو المقصود في dual

شكرا لك


كل إحترامي

#4 Amgad

Amgad

    مشرف عام ومشرف قسم تحليل النظم

  • الفريق الإداري
  • 4,558 مشاركة
  • الاسم الأول:امجد
  • اسم العائلة:حلمي
  • البـلـد: Country Flag
  • المنصب الحالي:Business Systems Analyst at al Fanar Co. Riyadh KSA

تاريخ المشاركة 13 April 2006 - 03:20 AM

بالاضافة لرد الأخ / bedooracle
اليك هذا الشرح من مشاركة سابقه بالمنتدى

What is a Sequence :
A sequence is a database object created by a user and can be shared by multiple users to automatically generate sequence numbers. A typical usage of sequences is to create a primary key value, sequence number are stored and generated independently of tables. Therefore, the same sequence can be used for multiple tables.
CREATE SEQUENCE statement:
Syntax:
CREATE SEQUENCE sequence
[INCREMENT BY n]
[START WITH n]
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINXVALUE}]
[{CYCLE | NOCYCLE}]
[{CACHE n | NOCACHE}]

Where
Sequence  the name of the sequence generator.
INCREMENT BY n   the interval between sequence numbers 
n an integer (default 1).
START WITH n    the first sequence number to be generated (default 1).
MAXVALUE  n    the maximum value the sequence can generate
NOMAXVALUE  specifies a maximum value of 10*23 for ascending sequence and –1 for a descending sequence.
MINVALUE  n    specifies the minimum sequence value.
NOMINVALUE  specifies a minimum value of 10 for ascending sequence and –(10*26) for a descending sequence.
CYCLE| NOCYCLE  specifies that the sequence continues to generate values after reach either its maximum or minimum value or does not generate additional values.
CACHEn|NOCACHE  specifies how many values the Oracle Server will preallocate and keep in memory (default 20).

Example :  	
CREATE SEQUENCE  s_emp_id_seq
¬INCREMENT BY 1
START WITH 101
MAXVALUE 999999999
NOCACHE
NOCYCLE;
Notes  :
-	Do not use the CYCLE option when use sequence to create primary key.
-	Caching sequence values in memory allows faster access to those values.
-	Gaps in sequence values can occur when
-	A rollback occurs  	
-	sequence is used in another table
-	Use USER_SEQUENCES view to get information about sequences.

NEXTVAL and CURRVAL Pseudocolumns:
-	NEXTVAL returns the next available sequence values. 
-	It returns a unique value every time it is referenced, even for different users.
-	CURRVAL obtains the current sequence value.
-	NEXTVAL must be issued for that sequence before CURRVAL contains a value.
 
Rules for using NEXTVAL and CURRVAL:
You can use NEXTVAL and CURRVAL in the following:
-	The SELECT list of a SELECT statement that is not part of a subquery.
-	The SELECT list of a subquery in an INSERT statement.
-	The VALUES clause of an INSERT statement.
-	The SET clause of an UPDATE statement.
You can not  use NEXTVAL and CURRVAL in the following:
-	A SELECT list of a view.
-	A SELECT statement with the DISTINCT keyword.
-	A SELECT statement with the GROUP BY, HAVING, or ORDER BY clauses.
-	A subquery in a SELECT , DELETE, or UPDATE statement.
-	A DEFAULT expression in a CREATE TABLE or ALTER TABLE statement.
Examples:  	
1. SELECT  s_dept_id.nextval
FROM  	SYS.DUAL;
2. SELECT  s_dept_id.currtval
FROM  	SYS.DUAL;
3. SELECT  s_dept_id.nextval,last_name
FROM  	s_emp;
4. INSERT INTO	s_dept
VALUES  	(s_dept_id.nextval, ‘Planning’,2);
5. INSERT INTO	history (h_id, name, dept_id)
select hisotry_id.nextval, last_name, dept_id 
from s_emp;
6. INSERT INTO	emp…
VALUES  	(emp_id.nextval, dept_id.currval,… );

ALTER SEQUENCE statement:
Change the increment value, maximum value, minimum value, cycle option, and cache option.
Syntax:
ALTER SEQUENCE sequence
[INCREMENT BY n]
[{MAXVALUE n | NOMAXVALUE}]
[{MINVALUE n | NOMINXVALUE}]
[{CYCLE | NOCYCLE}]
[{CACHE n | NOCACHE}]
Notes  :
-	Only future sequence numbers are affected by ALTER SEQUENCE statement.
-	The START WITH option con not be changed using ALTER SEQUENCE, the sequence must be dropped and re-created in order by restart the sequence at a different number.
-	Some validation is performed. For example a new MAXVALUE cannot be less than the current sequence number.
DROP SEQUENCE statement:
Remove a sequence by using the DROP SEQUENCE command.
Example:  
DROP SEQUENCE	s_emp_id_seq;
Confirming view names and sturectures:
-	You can get all information about sequences by querying the USER_SEQUENCES table.
Examples:  	
ALTER SEQUENCE	s_emp_id_seq
  	INCREMENT BY 5
CACHE 40
CYCLE;

لا إله إلا الله الحليم الكريم
لا اله إلا الله العلى العظيم
لا اله إلا الله رب السماوات السبع و رب العرش العظيم
‏اللهم ارزقني قبل الموت توبة وعند الموت شهادة وبعد الموت جنة
اللهم ارزقني حسن الخاتمة
اللهم هون علينا سكرات الموت ... ونور علينا قبورنا
اللهم ارزقني الموت وأنا ساجد لك يا ارحم الراحمين
اللهم ثبتني عند سؤال الملكين
اللهم اجعل قبري روضة من رياض الجنة ولا تجعله حفرة من حفر النار
اللهم اني اعوذ بك من فتن الدنيا
اللهم ارحم ابائنا وامهاتنا واغفر لهما وتجاوز عن سيئاتهما وادخلهم فسيح جناتك ... والحقنا بهما يا رب العالمين
اللهم ارحم موتانا وموتى المسلمين واشفي مرضانا ومرضى المسلمين
اللهم اغفر للمسلمين والمسلمات والمؤمنين والمؤمنات الأحياء منهم والأموات
وبارك اللهم على سيدنا محمد صلى الله عليه وسلم
اللهم آمين ... اللهم آمين ... اللهم آمين


....