mysql 索引 长文本 失败_在Doctrine中配置索引文本长度MySQL

我的数据库中有一个文本字段,前10个字符有一个索引.如何在我的Doctrine Entity中指定?

我无法在任何地方找到有关索引的数据库特定选项的任何信息:/

这是我的“部分”MySQL创建语句:

KEY `sourceaddr_index` (`sourceaddr`(10)),

这是我在学说中的@Index:

@ORM\Index(name="sourceaddr_index", columns={"sourceaddr"}, options={}),

这个dosnt会干扰常规使用,但是在将开发部署到新笔记本电脑并根据我的实体创建数据库时,我注意到了这个问题……

任何帮助,将不胜感激 :)

解决方法:

在MySQL中手动创建索引之后,我已经非常幸运地在Doctrine中命名索引.它不漂亮或优雅,如果您忘记重新创建索引,它很容易导致错误从开发转移到生产.但是,Doctrine似乎理解它尊重它.

在我的实体中,我有以下定义.学说忽略了长度选项 – 这是我的一厢情愿.

/**

* Field

*

* @ORM\Table(name="field", indexes={

* @ORM\Index(name="field_value_bt", columns={"value"}, options={"length": 100})

* })

在MySQL中,我执行

CREATE INDEX field_value_bt ON field (value(100))

据我所知,只要名称相同,Doctrine就会单独留下索引.

标签:doctrine-orm,mysql,symfony

来源: https://codeday.me/bug/20190823/1694840.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值