我正在尝试将我的某个字段的数据类型从float更改为string,但是我遇到了问题
SQLSTATE [42000]:语法错误或访问冲突:1064 您的SQL语法错误;检查手册 对应于您的MariaDB服务器版本,以使用正确的语法 第1行的''附近(SQL:ALTER TABLE患者 修改高度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();
});
}
答案 0 :(得分:0)
您可以使用laravel的change方法:
public function up()
{
Schema::table('patient', function ($table) {
$table->string('height')->change();
});
}
您的SQL语法也应为:
ALTER TABLE patient MODIFY height varchar(255);
更新:
根据laravel的文档:
仅以下列类型可以“更改”:bigInteger,二进制,布尔值,日期,dateTime,dateTimeTz,十进制,整数,json,longText,mediumText,smallInteger,字符串,文本,时间,unsignedBigInteger,unsignedInteger和unsignedSmallInteger。
因此Laravel的change
将无法直接工作,因为您有一个float
列,laravel在内部将其列为double(8,2)
。请使用我提供的内容更新原始SQL语法,然后重试。