当前位置: 首页 > 知识库问答 >
问题:

在现有表中添加列时出错

郎成弘
2023-03-14

我在laravel 5.3中工作,我想在现有表格中添加列(即课程章节)。所以我已经通过命令创建了迁移文件

 php artisan make:migration add_description_to_course_chapters_table --table=course_chapters

迁移文件已经创建,我已经添加了一些代码来在该表中添加列,如下所示

<?php
   use Illuminate\Support\Facades\Schema;
   use Illuminate\Database\Schema\Blueprint;
   use Illuminate\Database\Migrations\Migration;
   class AddDescriptionToCourseChaptersTable extends Migration {
       public function up() {
           Schema::table('course_chapters', function (Blueprint $table) {
               $table->text('description')->after('title');
           });
       }
       public function down(){
           Schema::table('course_chapters', function (Blueprint $table) {
               $table->dropColumn('description');
           });
       }
   }

我执行命令后

PHP工匠迁移

表没有被创建,而不是我得到了错误

←[37;41m
   ←[39;49m
←[37;41m  [Illuminate\Database\QueryException]
   ←[39;49m
←[37;41m  SQLSTATE[42000]: Syntax error or access violation: 1064 You have  an error i  ←[39;49m
←[37;41m  n your SQL syntax; check the manual that corresponds to your MariaDB server  ←[39;49m
←[37;41m   version for the right syntax to use near ') default character set    utf 8 col  ←[39;49m
←[37;41m  late utf8_unicode_ci' at line 1 (SQL: create table     `course_chapters` () def  ←[39;49m
←[37;41m  ault character set utf8 collate utf8_unicode_ci)
   ←[39;49m
←[37;41m
   ←[39;49m

←[37;41m
   ←[39;49m
←[37;41m  [Doctrine\DBAL\Driver\PDOException]
   ←[39;49m
←[37;41m  SQLSTATE[42000]: Syntax error or access violation: 1064 You have   an error i  ←[39;49m
←[37;41m  n your SQL syntax; check the manual that corresponds to your   MariaDB server  ←[39;49m
←[37;41m   version for the right syntax to use near ') default character set   utf 8 col  ←[39;49m
←[37;41m  late utf8_unicode_ci' at line 1


←[37;41m
   ←[39;49m
←[37;41m  [PDOException]
   ←[39;49m
←[37;41m  SQLSTATE[42000]: Syntax error or access violation: 1064 You have   an error i  ←[39;49m
←[37;41m  n your SQL syntax; check the manual that corresponds to your     MariaDB server  ←[39;49m
←[37;41m   version for the right syntax to use near ') default character set    utf 8 col  ←[39;49m
←[37;41m  late utf8_unicode_ci' at line 1
   ←[39;49m
←[37;41m
   ←[39;49m

任何答案?

我现有的表迁移文件是

<?php

use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CourseChapters extends Migration
{
    /**
    * Run the migrations.
    *
    * @return void
    */
   public function up()
   {
       Schema::create('course_chapters', function (Blueprint $table) {
           $table->increments('id');
           $table->integer('course_id');
           $table->integer('chapter_id');
           $table->string('title', 80);
           $table->string('source');
           $table->string('source_type');
           $table->string('max_attempts');
           $table->tinyInteger('status');
           $table->timestamps();
       });
    }

   /**
    * Reverse the migrations.
    *
    * @return void
    */
    public function down()
    {
        Schema::drop('course_chapters');
    }
 }

共有1个答案

茅桐
2023-03-14

你做得很好。

若要在现有数据库中修改/添加列,必须安装doctor/dbal,就像您已经安装的那样。但是如果你看-

我认为你的问题是你在使用MariaDB。

 类似资料:
  • 我不知道如何使用Laravel框架将新列添加到现有的数据库表中。 我试图使用…编辑迁移文件。。。 在终端,我执行和。 如何添加新列?

  • 我有一个工作的Java项目,它使用Access.accdb数据库存储数据。我正在为我的程序进行更新,为用户提供更多的功能。为了使其工作,我需要在现有的表中添加一个列,该列填充了数据。当我研究时,我发现UCanAccess不能支持 这是不幸的,但我明白,由于低级别的驱动程序不支持它,UCanAccess也不能支持它。 然后我找到了这个解决办法: 如何使用UCanAccess修改表 但这对我也不起作用

  • 我正在表任务中添加新列名标题。但我得到一个错误,该表中不存在此列。谁能帮我解决那个错误。这是我的密码: 然后添加此代码 到创建的新表文件

  • 我想在laravel中现有的表中添加一些新列。 我已经在谷歌上搜索过了,在这些搜索之后,我已经使用命令创建了迁移。 将列添加到用户。php 创建之后,我运行这个命令。 但也犯了同样的错误: 基本表或视图已存在:1050个表“用户”已存在(SQL:create table(int unsigned not null自动递增主键,varchar(255)not null,varchar(255)not

  • 我不知道如何使用Laravel框架将新列添加到我现有的数据库表中。 我尝试使用...编辑迁移文件。 在终端中,我执行和。 如何添加新列?

  • 我试图添加一列到一个现有的表(mysql)对我laravel项目,但我有几个问题 我运行命令php artisan make:migration add_time_to_customers--table=customers这显然会创建我的新迁移模板 但是我在这个实例上有几个数据库,所以我担心这个新的迁移适用于正确的数据库和表?我已经检查了前面的一列添加迁移,我看到一个引用它需要改变的实际数据库?