> ## Documentation Index
> Fetch the complete documentation index at: https://clickhouse.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

> توثيق حول التعامل مع القيود

# التعامل مع القيود

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

```sql theme={null}
ALTER TABLE [db].name [ON CLUSTER cluster] ADD CONSTRAINT [IF NOT EXISTS] constraint_name {CHECK|ASSUME} expression;
ALTER TABLE [db].name [ON CLUSTER cluster] MODIFY CONSTRAINT [IF EXISTS] constraint_name {CHECK|ASSUME} expression;
ALTER TABLE [db].name [ON CLUSTER cluster] DROP CONSTRAINT [IF EXISTS] constraint_name;
```

كما هو الحال عند إنشاء الجدول، يمكن تعريف قيد إما باعتباره `CHECK` (يُطبَّق عند `INSERT`) أو باعتباره `ASSUME` (يثق به المُحسِّن من دون التحقق منه). اطّلع على [القيود](/docs/ar/reference/statements/create/table#constraints) لمعرفة الفرق بينهما.

يستبدل `MODIFY CONSTRAINT` تعريف قيد موجود مع الإبقاء على موضعه في تعريف الجدول. ويمكنه أيضًا تغيير نوع القيد (على سبيل المثال، من `CHECK` إلى `ASSUME`). وهو مكافئ لحذف القيد ثم إضافته مجددًا بالتصريح الجديد. وإذا لم يكن القيد موجودًا، فسيُرجع الاستعلام خطأ ما لم يتم تحديد `IF EXISTS`.

اطّلع على مزيد من المعلومات حول [القيود](/docs/ar/reference/statements/create/table#constraints).

تضيف الاستعلامات البيانات الوصفية الخاصة بالقيود إلى الجدول أو تغيّرها أو تزيلها، لذا تُعالَج فورًا.

<Tip>
  **لن يتم تنفيذ** التحقق من القيد على البيانات الموجودة إذا تمت إضافته أو تعديله.
</Tip>

تُبث جميع التغييرات على الجداول المكررة إلى ZooKeeper، وتُطبَّق على النسخ المتماثلة الأخرى أيضًا.
