不允许使用Mysql Laravel Constraint PRIMARY KEY MYSQL

时间:2016-11-18 09:04:38

标签: mysql laravel-5

我有一个简单的表格:

CREATE TABLE IF NOT EXISTS `dcp_type_discount` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `code` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `texte` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=1 ;

当我尝试在另一个表中插入时,此表的列外键不允许我这样做。

在我当地的环境中它正在发挥作用。 但在我的服务器中我有这样的错误 console result

我正在使用laravel迁移系统,这是我的迁移:

  public function up()
{
    Schema::create('dcp_type_discount', function (Blueprint $table) {
        $table->increments('id');
        $table->string('code');
        $table->string('texte');
        $table->timestamps();
    });

    Schema::table('dcp_doc_item', function (Blueprint $table) {
        $table->integer('type_remise_id')->nullable()->unsigned();
        $table->foreign('type_remise_id')->references('id')->on('dcp_type_discount')->onDelete('cascade');

    });

    DB::table('dcp_type_discount')->insert(
        [
            [
                'code' => '%',
                'texte' => '%',
                'created_at'    => \Carbon\Carbon::now()->format('Y-m-d H:i:s')
            ],
            [
                'code' => 'UNIT',
                'texte' => 'UNIT',
                'created_at'    => \Carbon\Carbon::now()->format('Y-m-d H:i:s')
            ]
        ]);
}

/**
 * Reverse the migrations.
 *
 * @return void
 */
public function down()
{
    Schema::table('dcp_doc_item', function (Blueprint $table) {
        $table->dropForeign(['type_remise_id']);
        $table->dropColumn('type_remise_id');

    });
    Schema::drop('dcp_type_discount');
}

我认为这个问题不仅仅是因为laravel,因为我在我的PhpMyAdmin中尝试过,当我尝试在colonne上添加一个索引时,对于colonne type_remise_id,在外来列中,所有主键都没有出现。

我不知道会发生什么?!

感谢大家。

PS:这是我的项目表的描述:

CREATE TABLE IF NOT EXISTS `dcp_doc_item` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `line` int(10) unsigned NOT NULL,
  `material_id` int(10) unsigned NOT NULL,
  `document_id` int(10) unsigned NOT NULL,
  `quantity` double(8,2) NOT NULL,
  `price_wo_vat` double(8,2) NOT NULL,
  `vat` double(8,2) NOT NULL,
  `discount` double(8,2) NOT NULL,
  `net_price` double(8,2) NOT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL,
  `price` double(8,2) DEFAULT NULL,
  `qte_col` double(8,2) DEFAULT NULL,
  `qte_colis` double(8,2) DEFAULT NULL,
  `type_remise_id` int(10) unsigned DEFAULT NULL,
  PRIMARY KEY (`id`),
  KEY `dcp_doc_item_material_id_foreign` (`material_id`),
  KEY `dcp_doc_item_document_id_foreign` (`document_id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci AUTO_INCREMENT=85 ;

0 个答案:

没有答案