Frage

Ich möchte eine Datenbank erstellen, die Namen von Sonderzeichen in sie haben. zum Beispiel, (, -., _, @, #, $,%, & *)

kann jemand eine Ausgabe auf diesem zur Verfügung stellen?

War es hilfreich?

Lösung

würde ich empfehlen, dass Sie schaffen keine Datenbanken mit solchen Namen. Aber wenn Sie unbedingt müssen, sind hier die Einschränkungen :

  • Keine Kennung kann ASCII NUL (0x00) oder ein Byte mit einem Wert von 255.
  • enthalten
  • Datenbank-, Tabellen- und Spaltennamen sollten nicht mit Leerzeichen enden.
  • Datenbank- und Tabellennamen nicht enthalten „/“, „\“, „“, oder Zeichen, die in Dateinamen nicht erlaubt.

Um eine Datenbank zu erstellen, können Sie wie folgt vor:

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

Andere Tipps

Ganz einfach:. Nicht

Sie können exotische Tabellennamen Flucht der Graviszeichen in mysql, aber ich weiß nicht, ob Sie alles in den Backticks verwenden können. Es gibt große Mengen an Schmerzen während des Restes des Software-Lebenszyklus.

Ich würde eher empfehlen eine andere Tabelle erstellen, die exotische Namen zu halten.

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

Kurze Antwort:

  • Sie nicht. Ich empfehle dringend alle Bezeichner zu halten, bestehend aus A-Z, a-z, 0-9 und _ Zeichen. Sie können Ihren „exotischen“ Namen in einer Spalte oder Kommentar gespeichert werden.

Lange Antwort:

  • können Sie nennen Ihre Spalten, Tabellen, Schlüssel, Fremdschlüssel, Ansichten, Datenbanken sogar exotische Zeichen verwenden, aber die Chancen sind, Du wird es in Zukunft bereuen.
  • Wenn Sie darauf bestehen, dass dabei, Du wirst müssen Ihre Bezeichner in Backticks zu zitieren ( `).
  • Falls Ihre Kennung hat eine andere `innen enthalten, Sie können es entrinnen Angabe zweimal (z exotic`name ->` exotic``name`)
  • Für die Dinge nicht so einfach zu sein, wenn Sie exotische (oder auch nicht-konventionelle) Zeichen im Namen Ihrer Datenbank (ein einfachen Raum einschließlich), die Zeichen (mein Wissen, alles außer az, AZ, 0-9 und _) erhalten entkam in 4-stellige hexadezimale quadruplets entkam durch @, zB `Mein database` wird mein @ 0020database. Diese Form als Name eines Verzeichnis verwendet wird / Dateien, in denen Sie Ihre Datenbanken / Tabellen gespeichert sind, und z.B. Artikel in information_schema.INNODB_SYS_FOREIGN darüber hinaus sehr gut OS-abhängig sein können (was bedeutet, theoretisch, Sie möchten vielleicht SHOW VARIABLES LIKE 'version_compile_os' laufen, um es anzupassen). Sie sehen - mit exotischen Namen es alles viel, viel komplizierter und am Ende bekommt, es ist nicht wirklich wert
  • .
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top