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
- Füge einen Bezeichner je Zeile ein, ohne Anführungszeichen oder mit datenbankspezifischer Begrenzung.
- Starte die Analyse.
- Prüfe, welche Engines betroffen sind.
- Übernimm sichere Umschreibungen; reservierte Wörter und Anführungszeichen erfordern eine bewusste Entscheidung.
Annahmen
- Es wird ein Bezeichner je Zeile geprüft, keine vollständige `CREATE TABLE`-Anweisung.
- Zielsysteme: PostgreSQL, MySQL, SQL Server (T-SQL) und SQLite.
- Die Liste reservierter Wörter ist eine kuratierte Auswahl, keine vollständige Referenz.
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
- Verwende für mehrere Engines Kleinbuchstaben mit snake_case.
- Reservierte Wörter besser vermeiden als sich auf engine-spezifische Zitate zu verlassen.
- Halte Bezeichner deutlich unter 63 Zeichen, wenn PostgreSQL ein Ziel ist.
Häufige Fehler
- Annehmen, ein Name sei überall unreserviert, weil die aktuelle Datenbank ihn akzeptiert.
- Anführungszeichen als universell behandeln: die Zeichen unterscheiden sich je Engine.
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.