我试图将我的一个字段的数据类型从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的更改方法:
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语法,然后重试。