هل توجد قاعدة بيانات SQL مفتوحة المصدر تحتوي على مفهوم العمود الزائف "rowid" الخاص بـ Oracle؟

StackOverflow https://stackoverflow.com/questions/816234

  •  03-07-2019
  •  | 
  •  

سؤال

أعلم أن MySQL وPostgreSQL[1] يقومان بذلك لا لديك هذا المفهوم، لذلك أنا مهتم بمعرفة وجود قاعدة بيانات SQL مفتوحة المصدر تحتوي على هذا المفهوم.

[1] تمت الإشارة لاحقًا إلى أن PostgreSQL يحتوي على العمود الزائف الصفي.

هل كانت مفيدة؟

المحلول

PostgreSQL لديه هذا المفهوم.

يرى هنا للحصول على قائمة مختصرة بالأعمدة الزائفة في PostgreSQL, ، منها ctid يهمك:

ctid (tuple identifier)

المعرف الذي يصف الموقع الفعلي للمجموعة داخل قاعدة البيانات.يتم تمثيل زوج من الأرقام بواسطة ctid:رقم الكتلة وفهرس المجموعة داخل تلك الكتلة.

وهذا هو التناظرية المباشرة ل Oraclerowid.

أما بالنسبة لل MySQL, ، الموقع الفعلي للصف غير متاح للواجهة الأمامية.

في MyISAM, rowid هو مجرد ملف إزاحة من البداية، وهذا ما يتم تخزينه في أوراق الفهرس.

في InnoDB, ، الجداول index organized حسب التصميم، هذا يعني أن لديهم دائمًا نوعًا من المفتاح الأساسي، والفهارس الموجودة على ملف InnoDB الجدول استخدام ذلك PRIMARY KEY كمؤشر صف.

وهذا ينطبق أيضا على Oracleindex organized الجداول، والتي أ rowid ليس مؤشرًا فعليًا لكتلة في ملف بيانات، بل هو ما يسمى logical ROWID, ، أو UROWID

إذا قمت بتحديد أ ROWID من INDEX ORGANIZED الجدول في Oracle, ، ستلاحظ أن له تنسيقًا مختلفًا (شيء من هذا القبيل *BAEBwPICwQL+).وهذا في الواقع مشفرة PRIMARY KEY قيمة.

لاحظ أنه إذا لم تقم بتعريف أي عمود كـ a PRIMARY KEY, MySQL سيتم إنشاء بديل مخفي PRIMARY KEY والتي لن يكون لديك أي سيطرة عليها أبدًا.

لهذا السبب يجب عليك دائمًا إنشاء نوع من ملف PRIMARY KEY في InnoDB طاولة:إنه مجاني، ويمكنك التحكم في العمود.

نصائح أخرى

وإذا لم تفعل أي منهما ذلك، ثم لا الآخرون.

لديها

وسكليتي لصناعة السيارات تجمعت عمود "ROWID" التي يمكنك الوصول إليها باستخدام ROWID، _ROWID، أو OID. إذا قمت بتعريف مفتاح أساسي عدد صحيح من أنها ستكون مستعارة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top