Tabelle oder Spalte name kann nicht starten mit numerischen?

Habe ich versucht zu erstellen Tabelle mit dem Namen 15909434_user mit syntax wie folgt:

CREATE TABLE 15909434_user ( ... )

Würde es produziert Fehler natürlich. Dann, nachdem ich versucht habe ein bisschen recherche mit google fand ich einen guten Artikel hier beschreiben:

Wenn Sie ein Objekt erstellen, das in PostgreSQL, geben Sie diesem Objekt einen Namen. Jede Tabelle hat einen Namen, jede Spalte hat einen Namen, und so weiter. PostgreSQL verwendet einen einzigen Datentyp zu definieren, der alle Objektnamen: die name geben.

Einen Wert vom Typ name ist eine Zeichenfolge von 63 oder weniger Zeichen. Ein name beginnt mit einem Buchstaben oder einem Unterstrich beginnen; der rest der Zeichenkette kann Buchstaben, Ziffern und Unterstriche.

...

Wenn Sie feststellen, dass Sie brauchen, um ein Objekt zu erstellen, die nicht erfüllen diese Regeln, können Sie setzen Sie den Namen in doppelte Anführungszeichen. Wickeln Sie einen Namen in Anführungszeichen, erzeugt einen Bezeichner. Zum Beispiel könnten Sie eine Tabelle erstellen, deren name "3.14159"—die Anführungszeichen sind notwendig, aber sind nicht tatsächlich ein Teil des namens (das heißt, Sie werden nicht gespeichert und zählen nicht gegen den 63-Zeichen-Grenze). ...

Okay, jetzt weiß ich, wie man dieses Problem lösen, indem Sie die folgende syntax verwenden (double quote on table name):

CREATE TABLE "15909434_user" ( ... )

Können Sie erstellen, Tabellen-oder Spaltenname, wie "15909434_user" und auch user_15909434, aber nicht erstellen Tabelle oder Spalte name beginnt mit numerischen und ohne die Verwendung von doppelten Anführungszeichen.

Also dann, bin ich neugierig über den Grund hinter, dass (außer es ist eine Konvention). Warum dieses übereinkommen angewendet? Ist es zu vermeiden, so etwas wie syntax Verjährung oder einem anderen Grund?

Dank im Voraus für Ihre Aufmerksamkeit!

InformationsquelleAutor Wayan Wiprayoga | 2013-04-10

Schreibe einen Kommentar