English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
SQLite PRAGMA命令是一个特殊的命令,用于控制SQLite环境中的各种环境变量和状态标志。PRAGMA值可以读取,也可以根据需要进行设置。
要查询当前的PRAGMA值,只需提供编译指示的名称。
PRAGMA pragma_name;
要为PRAGMA设置新值,请使用以下语法。
PRAGMA pragma_name = value;
设置模式可以是名称,也可以是等效的整数,但是返回的值始终是整数。
auto_vacuum PRAGMA获取或设置自动真空模式。以下是简单的语法。
PRAGMA [database.]auto_vacuum; PRAGMA [database.]auto_vacuum = mode;
以下何处mode可以-
الترتيب | PRAGMA值和说明 |
---|---|
1 | 0 or NONE Auto-vacuum已禁用。这是默认模式,这意味着除非使用VACUUM命令手动对其进行清理,否则数据库文件的大小永远不会缩小。 |
2 | 1 or FULL 启用了Auto-vacuum并且它是全自动的,当从数据库中删除数据时,它允许数据库文件缩小。 |
3 | 2 or INCREMENTAL Auto-vacuum已启用,但必须手动激活。在这种模式下,将保留参考数据,但是将空闲页面简单地放在空闲列表中。这些页面可以随时使用incremental_vacuum pragma。 |
cache_size编译可以得到或暂时设置在内存中的页面缓存的最大尺寸。以下是简单的语法。
PRAGMA [database.]cache_size; PRAGMA [database.]cache_size = pages;
pages值表示高速缓存中的页面数。内置页面缓存的默认大小为2,000页,最小大小为10页。
case_sensitive_like pragma控制内置LIKE表达式的大小写敏感。默认情况下,此pragma为false,这意味着内置的LIKE运算符忽略字母大小写。下面是简单语法。
PRAGMA case_sensitive_like = [true|false];
无法查询此编译指示的当前状态。
count_changes pragma获取或设置数据操作语句(例如INSERT,UPDATE和DELETE)的返回值。以下是简单的语法。
PRAGMA count_changes; PRAGMA count_changes = [true|false];
默认情况下,此编译指示为false,并且这些语句不返回任何内容。如果设置为true,则每个提及的语句将返回一个单列单行表,该表由单个整数值组成,该整数值指示该操作所影响的行。
database_list实用程序将用于列出所有附加数据库。以下是简单的语法。
PRAGMA database_list;
该实用程序将返回一个三列的表,每个打开或连接的数据库都有一行,给出数据库序列号,其名称和关联的文件。
encoding pragma控制字符串是如何编码,并存储在数据库中的文件。以下是简单的语法。
PRAGMA encoding; PRAGMA encoding = format;
格式值可以是UTF-8, UTF-16leأوUTF-16be之一。
freelist_count Pragma返回一个整数,表示许多数据库页当前如何标记为空闲和可用的。以下是简单的语法。
PRAGMA [database.]freelist_count;
格式值可以是UTF-8, UTF-16le أوUTF-16be之一。
index_info Pragma返回有关数据库索引的信息。以下是简单的语法。
PRAGMA [database.]index_info( index_name );
سيكون هناك سطر في الناتج لكل عمود يحتوي على índice، مما يوفر ترتيب العمود، índice العمود في الجدول، واسم العمود.
index_list Pragmaيحلل جميع índices المرتبطة بالجداول. إليك الجملة البسيطة.
PRAGMA [database.]index_list( table_name );
سيكون هناك سطر في الناتج المتمثل في كل índice، مما يوفر سلسلة الأرقام، الاسم الـ índice، وعلامة تشير إلى ما إذا كان الـ índice فريدًا.
journal_mode Pragmaالحصول أو تعيين كيفية تخزين وتعامل ملف السجلات لتحكم في نمط السجلات. إليك الجملة البسيطة.
PRAGMA journal_mode; PRAGMA journal_mode = mode; PRAGMA database.journal_mode; PRAGMA database.journal_mode = mode;
يوضح الجدول أدناه خمس أنماط سجلات مدعومة.
الترتيب | قيمة Pragma وشرحها |
---|---|
1 | DELETE هذا هو النمط الافتراضي. يتم حذف ملف السجلات عند إتمام المعاملة. |
2 | TRUNCATE يتم تقصير ملف السجلات إلى طول صفر. |
3 | PERSIST يظل ملف السجلات في مكانه، ولكن العنوان يتم تغييره لتعليم أن السجلات لم تعد صالحة. |
4 | MEMORY تخزن السجلات في الذاكرة وليس على القرص. |
5 | OFF لا يحتفظ بالسجلات. |
max_page_count PRAGMAالحصول أو تعيين عدد الصفوصندوق المسموح به للبيانات الأساسية. إليك الجملة البسيطة.
PRAGMA [database.]max_page_count; PRAGMA [database.]max_page_count = max_page;
القيمة الافتراضية هي 1,073,741,823،وهذا يعني صفوسندوق جيجابايت، مما يعني أن البيانات يمكن أن تنمو إلى 1 تيرابايت إذا كان حجم الصفوصندوق الافتراضي 1 كيلوبايت.
page_count PRAGMAيعود بعدد الصفوف الحالية للبيانات الأساسية. إليك الجملة البسيطة -
PRAGMA [database.]page_count;
حجم ملف البيانات يجب أن يكون page_count * page_size.
page_size PRAGMAالحصول أو تعيين حجم صفوصندوق البيانات. إليك الجملة البسيطة.
PRAGMA [database.]page_size; PRAGMA [database.]page_size = bytes;
بالتجربة، يسمح الحجم المسموح به هو 512، 1024، 2048، 4096، 8192، 16384 و 32768 بت. الطريقة الوحيدة لتغيير حجم الصفحة في قاعدة البيانات الموجودة هي تعيين حجم الصفحة، ثم تنفيذ VACUUM على قاعدة البيانات فوراً.
parser_trace PRAGMA يوضح التحكم في الطباعة الحالة الت调试، لأنه يفسر أوامر SQL.
PRAGMA parser_trace = [true|false];
بالتجربة، يتم تعيينه إلى false، ولكن عند تمكينه عن طريق تعيينه إلى true، يتم طباعة حالة معالج SQL عند تحليل أوامر SQL.
recursive_triggers PRAGMA تحصل أو تعيين وظيفة التشغيل المتكررة. إذا لم يتم تمكين التشغيل المتكرر، لن يتم تنشيط التشغيل المتكرر من قبل عمليات التشغيل الخاصة بالتقديم. إليك الجملة البسيطة.
PRAGMA recursive_triggers; PRAGMA recursive_triggers = [true|false];
schema_version PRAGMA تحصل أو تعيين قيمة النسخة النموذجية المخزنة في رأس قاعدة البيانات. إليك الجملة البسيطة.
PRAGMA [database.]schema_version; PRAGMA [database.]schema_version = number;
هذا قيمة عددية عشوائية من 32 بت مع إشارة، تستخدم لتتبع التغييرات في النظام. كلما تم تنفيذ أمر تغيير النمط (مثل CREATE ... أو DROP ...)، يتم زيادة هذه القيمة.
secure_delete PRAGMA يستخدم لتحكم كيفية إزالة المحتويات من قاعدة البيانات. إليك الجملة البسيطة.
PRAGMA secure_delete; PRAGMA secure_delete = [true|false]; PRAGMA database.secure_delete; PRAGMA database.secure_delete = [true|false];
القيمة الافتراضية لإزالة الأمان عادةً هي off، ولكن يمكن تغيير القيمة الافتراضية باستخدام خيار بناء SQLITE_SECURE_DELETE.
sql_trace PRAGMA لتحميل نتائج متابعة SQL على الشاشة. إليك النحو البسيط.
PRAGMA sql_trace; PRAGMA sql_trace = [true|false];
إذا كنت بحاجة إلى تضمين هذه التعليمات البرمجية في SQLite، يجب أن يتم تجميع SQLite باستخدام تعليمات SQLite_DEBUG.
synchronous PRAGMA للحصول أو تعيين نمط التحقق الحالي على القرص، الذي يتحكم في كيفية كتابة SQLite لكل بيان إلى التخزين الفيزيائي. إليك النحو البسيط.
PRAGMA [database.]synchronous; PRAGMA [database.]synchronous = mode;
SQLite يدعم أنماط التحقق المدرجة في الجدول التالي.
الترتيب | قيمة Pragma وشرحها |
---|---|
1 | 0 أو OFF لا يتم التحقق بتاتاً |
2 | 1 أو NORMAL التحقق بعد كل سلسلة من العمليات المحورية على القرص |
3 | 2 أو FULL التحقق بعد كل عملية محورية على القرص |
temp_store PRAGMA للحصول أو تعيين نمط التخزين المستخدم في ملفات قاعدة البيانات المؤقتة. إليك النحو البسيط.
PRAGMA temp_store; PRAGMA temp_store = mode;
SQLite يدعم أنماط التخزين التالية.
الترتيب | قيمة Pragma وشرحها |
---|---|
1 | 0 أو DEFAULT استخدام القيمة الافتراضية عند التجميع. عادةً هو FILE. |
2 | 1 أو FILE استخدام التخزين القائم على الملف. |
3 | 2 أو MEMORY استخدام التخزين القائم على الذاكرة. |
temp_store_directory PRAGMA للحصول أو تعيين موقف ملفات قاعدة البيانات المؤقتة. إليك النحو البسيط.
PRAGMA temp_store_directory; PRAGMA temp_store_directory = 'directory_path';
user_versionتعليمات التجميع للحصول أو تعيين القيمة المحددة مسبقًا للمستخدم في رأس القاعدة البيانات. إليك النحو البسيط.
PRAGMA [database.]user_version; PRAGMA [database.]user_version = number;
هذا قيمة عددية قابلة للسحب من 32 بت، يمكن للمدربين ضبط هذه القيمة لغرض متابعة الإصدارات.
writable_schemaحصول أو تعيين القدرة على تعديل جداول النظام. إليك الجملة البسيطة.
PRAGMA writable_schema; PRAGMA writable_schema = [true|false];
إذا تم تعيين هذا مؤشر التجميع، يمكن إنشاء وتعديل الجداول التي تبدأ بحرف sqlite_، بما في ذلك جدول sqlite_master. يرجى الحذر عند استخدام مؤشر التجميع، لأنه قد يؤدي إلى تدمير قاعدة البيانات بالكامل.