إنشاء قاعدة بيانات Mysql مع أحرف خاصة في الاسم

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

  •  06-09-2019
  •  | 
  •  

سؤال

أريد إنشاء قاعدة بيانات اسم سوف يكون أحرف خاصة في ذلك.على سبيل المثال ، (., - , _, @, #, $, %, &, *)

يمكن لأي شخص تقديم أي الإخراج على هذا ؟

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

المحلول

أود أن أوصي بشدة أنك لا تنشئ قواعد بيانات بهذه الأسماء. ولكن إذا كان يجب عليك بالتأكيد، ها هي قيود:

  • لا يمكن أن يحتوي أي معرف على ASCII NUL (0x00) أو بايت بقيمة 255.
  • يجب أن لا تنتهي أسماء قاعدة البيانات والجدول والأعمدة بأحرف الفضاء.
  • لا يمكن أن تحتوي أسماء قاعدة البيانات والأسماء على "/"، ""، "، أو الأحرف غير المسموح بها في أسماء الملفات.

لإنشاء قاعدة بيانات، يمكنك القيام بما يلي:

mysql> create database `really@strange*database$name`;

نصائح أخرى

بسيط: لا.

أنت يمكن استمتع بأسماء الجدول الغريبة باستخدام Backtick في MySQL، لكنني لا أعرف إذا كنت تستطيع استخدام اي شى داخل الخلفية. سوف يعطي كميات كبيرة من الألم أثناء بقية دورة حياة البرامج الخاصة بك.

أفضل أن أوصي بإنشاء جدول آخر لعقد تلك الأسماء الغريبة.

-- Example:
CREATE TABLE _DatabaseMetadata (
    databaseName VARCHAR(255),
    exoticName VARCHAR(255)
) DEFAULT CHARSET=utf8;

الجواب القصير:

  • لا.وإنني أوصي بشدة أن تبقى جميع المعرفات التي تتكون من A-Z,A-z,0-9 و _ الشخصيات.يمكنك تخزين الخاص بك "الغريبة" اسم في عمود أو التعليق.

الجواب طويل:

  • يمكنك تسمية الأعمدة والجداول, مفاتيح, مفاتيح خارجية, وجهات النظر, حتى قواعد البيانات باستخدام الشخصيات الغريبة ولكن هناك احتمالات أنك سوف يندم عليه في المستقبل.
  • إذا كنت تصر في القيام بذلك سوف تحتاج نقلا بك معرفات في backticks (`).
  • في حالة الخاص بك معرف يجب أن تحتوي على آخر ` في الداخل ، يمكنك الهروب من ذلك تفيد مرتين (مثلا ، غريبة د بعيد --> `الغريبة`اسم`)
  • عن الأشياء التي لا يكون بهذه البساطة إذا كنت تستخدم الغريبة (أو حتى غير التقليدية) الأحرف في اسم قاعدة البيانات الخاصة بك (بما في ذلك بسيط الفضاء) ، تلك الأحرف (على حد علمي كل شيء ما عدا a-z,a-Z,0-9 و _) الحصول هرب إلى 4 أرقام ست عشرية رباعيات نجا @, على سبيل المثال`قاعدة البيانات` يصبح@0020database.هذا النموذج يستخدم اسم الدلائل/الملفات في قواعد البيانات/الجداول المخزنة ، على سبيل المثالالعناصر في information_schema.INNODB_SYS_FOREIGN, وعلاوة على ذلك قد يكون جيدا جدا التي تعتمد على نظام التشغيل (يعني من الناحية النظرية ، قد ترغب في تشغيل SHOW VARIABLES LIKE 'version_compile_os' للتكيف معها).ترى - مع الأسماء الغريبة كل ذلك يحصل أكثر من ذلك بكثير تعقيدا و في النهاية انها ليست حقا يستحق ذلك.
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top