我的php工匠迁移发生了什么

时间:2015-07-03 14:42:59

标签: laravel schema migrate artisan

[照亮\数据库\ QueryException]  SQLSTATE [42000]:语法错误或访问冲突:1064您有错误i  你的SQL语法;查看与MySQL服务器对应的手册v  在更新casc上删除级联时使用''附近的正确语法的版本  ade'在第1行(SQL:alter table users添加约束users_address_id_fo  在删除级联上统治外键(address_id)引用address()  在更新级联)

[PDOException] SQLSTATE [42000]:语法错误或访问冲突:1064您有错误i 你的SQL语法;查看与MySQL服务器对应的手册v 在更新casc上删除级联时使用''附近的正确语法的版本 ade'在第1行

migrate [--bench [=“...”]] [--database [=“...”]] [--force] [--path [=“...”]] [ - -PAC kage [=“...”]] [--pretend] [--seed]

 public function up()
        {
            Schema::create('users',function($table){
                $table->increments('id');
                $table->string('name',30);
                $table->string('phone',11);
                $table->integer('age');
                $table->string('email',50);
                $table->string('marry_status',10);
                $table->integer('address_id');
                $table->foreign('address_id')->reference('id')->on('address')->onDelete('cascade')->onUpdate('cascade');
                $table->integer('points_id');
                $table->foreign('points_id')->reference('id')->on('address')->onDelete('cascade')->onUpdate('cascade');
                $table->timestamps();   
            });
        }

php migrate --pretend

CreateUsersTable: create table `users` (`id` int unsigned not null auto_increment primary key, `name` varchar(30) not null, `phone` varchar(11) not null, `age` int not null, `email` varchar(50) not null, `marry_status` varchar(10) not null, `address_id` int not null, `points_id` int not null, `created_at` timestamp default 0 not null, `updated_at` timestamp default 0 not null) default character set utf8 collate utf8_unicode_ci

CreateUsersTable: alter table `users` add constraint users_address_id_foreign foreign key (`address_id`) references `address` () on delete cascade on update cascade

CreateUsersTable: alter table `users` add constraint users_points_id_foreign foreign key (`points_id`) references `address` () on delete cascade on update cascade

CreateAddressTable: create table `address` (`id` int unsigned not null auto_increment primary key, `users_id` int not null, `name` varchar(30) not null, `created_at` timestamp default 0 not null, `updated_at` timestamp default 0 not null) default character set utf8 collate utf8_unicode_ci

CreatePointsTable: create table `points` (`id` int unsigned not null auto_increment primary key, `point` int not null, `users_id` int not null, `created_at` timestamp default 0 not null, `updated_at` timestamp default 0 not null) default character set utf8 collate utf8_unicode_ci

我尝试但我不好

public function up()
        {
            Schema::create('users',function($table){
                $table->increments('id');
                $table->string('name',30);
                $table->string('phone',11);
                $table->integer('age');
                $table->string('email',50);
                $table->string('marry_status',10);
                $table->integer('address_id');

                $table->integer('points_id');

                $table->timestamps();   
            });
            Schema::table('users',function($table){
                $table->foreign('points_id')->references('id')->on('address')->onDelete('cascade')->onUpdate('cascade');
                $table->foreign('address_id')->references('id')->on('address')->onDelete('cascade')->onUpdate('cascade');
            });

        }

1 个答案:

答案 0 :(得分:1)

语法错误。您使用的是reference()方法,但正确的方法是references()。修复它,我认为一切都会好的。