我有一个简单的表格:
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 ;
当我尝试在另一个表中插入时,此表的列外键不允许我这样做。
在我当地的环境中它正在发挥作用。 但在我的服务器中我有这样的错误
我正在使用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 ;