表名,列名,索引名等...在MySQL(和MariaDB)中,它们的最大长度为64个字符。我该如何增加呢?如何增加最大标识符名称长度?
复制此:Maximum length of a Column name in MySQL
MySQL的文档在这里:https://dev.mysql.com/doc/refman/5.7/en/identifiers.html
MariaDB的文档在这里:https://mariadb.com/kb/en/mariadb/identifier-names/
麻烦答案:切换到PostgreSQL和recompile。
背景:以名称为前缀的列名以及以子项目名称为前缀的表名。通常项目名称很短,但有两个相互冲突,至少其中一个会变得更长。
例子:
/* 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
-- ...
)
这似乎过多,但考虑Java naming conventions,甚至只是.NET。
com.companyname.intranetwebsite.finance.invoice.getTotalAmount() // 63 chars
IntranetWebsite.Finance.Invoice.GetTotalAmount() // 47 chars
注意:这是不是我的选择前面列表名称的列。但是,在少数情况下,对于没有重新连接同一个表的连接而言,这会变得非常有用。我知道至少有一个具体实例,由于这些前缀,编写SQL代码的代码更容易实现。
这是一个硬限制,它不能增加。如果可能,在问题中链接到的文档将指示配置值。 – Adrian
这不是你的问题的答案,但不能为每个项目创建单独的数据库并将其适当地命名?这至少需要项目名称 – Kitet
您只能通过下载mysql源代码,修改代码的必要部分,编译并制作。 (如果你可以:)) – abeyaz