SQL-Bezeichner auf Portabilität prüfen

Füge einen vorgeschlagenen Tabellen- oder Spaltennamen oder mehrere zeilenweise ein, um potenziell abgelehnte, still umbenannte oder unterschiedlich behandelte Bezeichner in PostgreSQL, MySQL, SQL Server und SQLite zu erkennen.

Die Verarbeitung erfolgt lokal in Ihrem Browser. Ihre Datei wird niemals hochgeladen.

Anleitung Tool

  1. Füge einen Bezeichner je Zeile ein, ohne Anführungszeichen oder mit datenbankspezifischer Begrenzung.
  2. Starte die Analyse.
  3. Prüfe, welche Engines betroffen sind.
  4. Übernimm sichere Umschreibungen; reservierte Wörter und Anführungszeichen erfordern eine bewusste Entscheidung.

Annahmen

Quellen und Referenzdaten

Methodik

Prüft sechs Fälle: reservierte Wörter je Engine; Groß-/Kleinschreibung (PostgreSQL wandelt nicht zitierte Namen in Kleinbuchstaben um; MySQL hängt von System/Config ab; SQL Server unterscheidet üblicherweise nicht; SQLite unterscheidet); Zitierzeichen (doppelte Anführungszeichen, Backticks, eckige Klammern); Längenlimits (PostgreSQL 63 Byte, MySQL 64 Zeichen, SQL Server 128, SQLite praktisch unbegrenzt); ungültige unbegrenzte Zeichen und führenden Unterstrich. Nur Kleinschreibung und Ersetzen ungültiger Zeichen durch Unterstriche werden vorgeschlagen.

Rechenbeispiel

In manchen Engines reserviertes Wort

Eingaben: limit

Ergebnis: In PostgreSQL, MySQL und SQLite reserviert; SQL Server verwendet TOP/OFFSET-FETCH statt LIMIT.

Gemischte Groß- und Kleinschreibung

Eingaben: CustomerOrder

Ergebnis: PostgreSQL wandelt einen nicht zitierten Namen still in `customerorder` um. Ein einheitliches `customerorder` wird als portable Konvention vorgeschlagen.

Leerzeichen und Bindestrich

Eingaben: customer order-id

Ergebnis: Kein einfacher gültiger Bezeichner in den vier Engines. Vorgeschlagen wird `customer_order_id`.

PostgreSQL-Limit

Eingaben: Bezeichner über 63 Byte

Ergebnis: PostgreSQL begrenzt Bezeichner auf 63 Byte und kürzt längere Namen, sodass unterschiedliche Namen kollidieren können.

Praktische Hinweise
Häufige Fehler

Häufige Fragen

Warum ist `limit` nicht in SQL Server reserviert?

SQL Server besitzt keine LIMIT-Klausel, sondern TOP bzw. OFFSET/FETCH.

Lösen Anführungszeichen reservierte Wörter?

In diesen Engines meist ja, aber PostgreSQL/SQLite verwenden doppelte Anführungszeichen, MySQL Backticks und SQL Server eckige Klammern.

Ist ein führender Unterstrich ungültig?

Nein. Er wird nur als geringer Hinweis zu Konventionen markiert.

Zuletzt geprüft:

Die reservierten Wörter sind eine kuratierte Auswahl und nicht vollständig. Das Werkzeug analysiert einen Bezeichner je Zeile, keine vollständige SQL-Anweisung.

Design- und Tool-Einstellungen sowie gespeicherte und zuletzt verwendete Listen werden nur in diesem Browser gespeichert.