php - 无法在 Symfony 中创建索引列

标签 php mysql symfony doctrine-orm

我之前创建了一个包含多列的表。其中有一个长文本类型的“消息”列。我想通过为 "message" 列创建索引来修改我的表。我更改了实体,并在 bash 上执行了命令来更新表。不幸的是,我收到此错误消息。

An exception occurred while executing 'CREATE INDEX message_idx ON 
project (message)':SQLSTATE[42000]: Syntax error or access violation: 
1170 BLOB/TEXT column 'message' used in key specification without a key 
length      

我想指出的是,我一直在寻找执行此类操作的方法。这就是我所做的。

索引:

 * @ORM\Table(indexes={@ORM\Index(name="message_idx",columns={"message"},options={"length"=255})})

列:

 /**
 * @var String $message
 * @ORM\Column(name="message", type="text",length=255,nullable=true,options={"default": "NULL"})
 */
private $message;

最佳答案

尝试

/**
 * @ORM\Entity
 * @ORM\Table(indexes={@ORM\Index(name="message_idx",columns={"message"}, options={"length": 255})})
 */
class Test
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer", nullable=false)
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
    * @ORM\Column(name="message", type="string", length=255,nullable=true)
    */
    private $message;

}

当您使用文本类型作为索引时,您需要定义长度,而“文本”类型没有长度,因此您需要使用“字符串”和长度

enter image description here

关于php - 无法在 Symfony 中创建索引列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53741545/

相关文章:

php - 多维关联数组 (PHP)

mysql - 使用连接和嵌套查询计算数量

mySQL 将行从 2 个表移动到其他表

symfony - 删除或自定义嵌入的表单标签

php - 从字符串设置 Symfony2 中的日期时间和时间

php - Laravel进行复杂验证的方法

php - 通过 id 获取 div 值 - Javascript

javascript - 如何向我的网站添加文本?

mysql - 我的sql Group By案例获得特定年份的最高薪员工

php - Symfony2 中翻译的高级定制