Amir Alsaeed نشر 17 يونيو 2021 أرسل تقرير نشر 17 يونيو 2021 أرغب بإنشاء الجدول التالي أثناء عمليات التهجير على قاعدة البيانات في مشروع لارافل: CREATE TABLE Payments ( ID int PRIMARY KEY, Department_ID INT, Salary decimal(9,2) CHECK (Salary < 500.00) ); واستطعت من إنشاء البنية التالية: Schema::create('Payments', function (Blueprint $table) { $table->increments('id'); $table->integer('department_id'); $table->decimal('salary',9,2); }); ولكن كيف يمكنني إضافة هذه القيود عليها مثل: CHECK (Salary < 500.00) ؟ اقتباس
0 محمد أبو عواد نشر 17 يونيو 2021 أرسل تقرير نشر 17 يونيو 2021 يمكنك استخدام الطريقة الآتية لاضافة Check Constraints DB::statement('ALTER TABLE Payments ADD CONSTRAINT chk_salary_amount CHECK (salary < 500.00);'); اقتباس
0 Adnane Kadri نشر 17 يونيو 2021 أرسل تقرير نشر 17 يونيو 2021 لا أظن أن الفكرة ممكنة عن طريق تابع ضمن الكائن Blueprint , و لكن يمكنك إضافة أي قيد عن طريق مفهوم المعدلات Mutators قبل أي إدراج بقواعد البيانات . نقوم بتعريف المعدل setSalaryAttribute بداخل ملف النموذج المستهدف على هذا النحو : class YourModel extends Model{ public function setSalaryAttribute($value){ $this->attributes['salary'] = $value < 500.00 ? $value : 500.00; } } في هذا المثال سيقوم بالتحقق , كل مرة نحاول فيها إدراج أو تحديث القيمة salary , إن كانت القيمة salary أقل من 500.00 و إلا فسيضع 500.00 نفسها . اقتباس
السؤال
Amir Alsaeed
أرغب بإنشاء الجدول التالي أثناء عمليات التهجير على قاعدة البيانات في مشروع لارافل:
CREATE TABLE Payments ( ID int PRIMARY KEY, Department_ID INT, Salary decimal(9,2) CHECK (Salary < 500.00) );
واستطعت من إنشاء البنية التالية:
Schema::create('Payments', function (Blueprint $table) { $table->increments('id'); $table->integer('department_id'); $table->decimal('salary',9,2); });
ولكن كيف يمكنني إضافة هذه القيود عليها مثل: CHECK (Salary < 500.00) ؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.