Tabellennamen, Spaltennamen, Indexnamen usw. In MySQL (und MariaDB) haben diese eine maximale Länge von 64 Zeichen. Wie kann ich das erhöhen?Wie kann die maximale Länge des Bezeichners erhöht werden?
Duplizieren hier: Maximum length of a Column name in MySQL
MySQL docs hier: https://dev.mysql.com/doc/refman/5.7/en/identifiers.html
MariaDB docs hier: https://mariadb.com/kb/en/mariadb/identifier-names/
Störende Antwort: Wechseln Sie zu PostgreSQL und recompile.
Hintergrund: Spaltennamen, denen Tabellennamen vorangestellt sind, werden mit Tabellennamen kombiniert, denen die Namen der Unterprojekte vorangestellt sind. Gewöhnlich sind Projektnamen kurz, aber zwei kollidieren gerade und mindestens einer von ihnen wird etwas länger.
Beispiel:
/* One MySQL Instance for in-house applications called "MySQL" on port 3306.
* One MySQL schema (database/catalog) per application "intranet_website".
* Several sub-project prefixes per application, example: "finance_"
* Individual table-name: "invoice"
* Specific column-name: "TotalAmount" ****/
CREATE TABLE intranet_website.finance_invoice_tbl (
-- ...
finance_invoice_TotalAmount DECIMAL(20,2), -- 27 chars
-- ...
)
Dies kann übertrieben erscheinen, aber bedenken Sie Java naming conventions, oder auch nur .Net.
com.companyname.intranetwebsite.finance.invoice.getTotalAmount() // 63 chars
IntranetWebsite.Finance.Invoice.GetTotalAmount() // 47 chars
Hinweis: Es ist nicht meine Wahl, Spalten mit Tabellennamen zu versehen. Es gibt jedoch einige Fälle, in denen dies für Joins ohne erneute Joins derselben Tabelle nur geringfügig nützlich ist. Ich kenne mindestens eine konkrete Instanz, wo Code-Schreiben SQL-Code aufgrund dieser Präfixe viel einfacher zu implementieren war.
Es ist eine harte Grenze, es kann nicht erhöht werden. Wenn es sein könnte, würde die Dokumentation, die Sie in der Frage verlinkt haben, die Konfigurationswerte angeben, um dies zu tun. – Adrian
Dies ist keine Antwort auf Ihre Frage, aber können Sie keine separate Datenbank pro Projekt erstellen und sie entsprechend benennen?Dies würde mindestens Projektnamen aus der Gleichung nehmen – Kitet
Sie können es nur tun, indem Sie mysql Quelle herunterladen, ändern Sie die notwendigen Teile des Codes, kompilieren und machen. (Wenn Sie können :)) – abeyaz