如何在laravel迁移中将数据类型float更改为string

问题描述 投票:0回答:1

我试图将我的一个字段的数据类型从float更改为字符串,但我面临一个问题

SQLSTATE [42000]:语法错误或访问冲突:1064 SQL语法中有错误;检查与MariaDB服务器版本对应的手册,以便在第1行的''附近使用正确的语法(SQL:ALTER TABLE patient MODIFY height varchar)

我的迁移:

public function up()
{
    DB::statement('ALTER TABLE patient MODIFY height varchar');
}

我如何实现目标:这里需要你的帮助

public function up()
{
    Schema::table('patient', function (Blueprint $table) {

        $table->string('height')->change();
    });


}
laravel types migration
1个回答
0
投票

您可以使用laravel的更改方法:

public function up()
{
    Schema::table('patient', function ($table) {

        $table->string('height')->change();
    });
}

您的SQL语法也应该是:

ALTER TABLE patient MODIFY height varchar(255);

更新:

根据laravel的文档:

只能更改以下列类型:bigInteger,binary,boolean,date,dateTime,dateTimeTz,decimal,integer,json,longText,mediumText,smallInteger,string,text,time,unsignedBigInteger,unsignedInteger和unsignedSmallInteger。

所以Laravel的change将不会直接工作,因为你有一个float列laravel内部作为double(8,2)。请使用我给出的内容更新原始SQL语法,然后重试。

© www.soinside.com 2019 - 2024. All rights reserved.