无法在symfony中创建索引列

1cosmwyk  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(358)

我之前创建了一个包含多列的表。其中一个“消息”列的类型 longtext . 我想通过为 "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;
vwoqyblh

vwoqyblh1#

尝试

/**
 * @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;

}

使用文本类型作为索引时,需要定义长度,而“text”类型没有长度,因此需要使用“string”和长度

相关问题