我刚刚更新了使用XAMPP的本地开发环境,新版本的XAMPP使用了MariaDB,而我之前使用的旧版本使用的是MySQL,我很满意。
现在,我认为MariaDB应该与MySQL完全兼容,因为它本质上只是一个“临时”替代品,但在升级之前,我很难导入直接从MySQL导出的数据库。
我得到以下错误:
Query:
/*Table structure for table `blm_wc_download_log` */
CREATE TABLE `blm_wc_download_log` (
`download_log_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`timestamp` datetime NOT NULL,
`permission_id` bigint(20) unsigned NOT NULL,
`user_id` bigint(20) unsigned DEFAULT NULL,
`user_ip_address` varchar(100) COLLATE utf8mb4_unicode_520_ci DEFAULT '',
PRIMARY KEY (`download_log_id`),
KEY `permission_id` (`permission_id`),
KEY `timestamp` (`timestamp`),
CONSTRAINT `fk_blm_wc_download_log_permission_id` FOREIGN KEY (`permission_id`) REFERENCES `blm_woocommerce_downloadable_product_permissions` (`permission_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci
Error occured at:2019-02-26 05:30:20
Line no.:9919
Error Code: 1005 - Can't create table `my-db`.`blm_wc_download_log` (errno: 150 "Foreign key constraint is incorrectly formed")
这里是blm_woocommerce_downloadable_product_permissions
:
CREATE TABLE `blm_woocommerce_downloadable_product_permissions` (
`permission_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`download_id` varchar(36) COLLATE utf8mb4_unicode_520_ci NOT NULL,
`product_id` bigint(20) unsigned NOT NULL,
`order_id` bigint(20) unsigned NOT NULL DEFAULT '0',
`order_key` varchar(200) COLLATE utf8mb4_unicode_520_ci NOT NULL,
`user_email` varchar(200) COLLATE utf8mb4_unicode_520_ci NOT NULL,
`user_id` bigint(20) unsigned DEFAULT NULL,
`downloads_remaining` varchar(9) COLLATE utf8mb4_unicode_520_ci DEFAULT NULL,
`access_granted` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`access_expires` datetime DEFAULT NULL,
`download_count` bigint(20) unsigned NOT NULL DEFAULT '0',
PRIMARY KEY (`permission_id`),
KEY `download_order_key_product` (`product_id`,`order_id`,`order_key`(16),`download_id`),
KEY `download_order_product` (`download_id`,`order_id`,`product_id`),
KEY `order_id` (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_520_ci;
是不是因为文件中的blm_woocommerce_downloadable_product_permissions
被创建得更靠下,它会因为认为该表不存在而出错?但是,在这么说的同时,我以前从未遇到过将这个数据库的SQL转储导入MySQL的问题。
这里有什么问题?如果有兼容性问题,不妨坚持使用MySQL......
是的,很可能您在应用FK之前没有创建表,您可以注释约束行,使您的表,然后在完全创建约束后应用约束。
我正在尝试迁移我的Rails MySQL数据库,但遇到以下错误: ActiveRecord::StatementInvalid:mysql2::错误:无法创建表。(错误号:150“外键约束格式不正确”):创建表(int AUTO_INCREMENT主键,varchar(255),int,int,datetime不为空, 以下是我的迁移: 如果有人能在这里给我一个主意,我将非常感谢。我已经搜索了一段
迁移我的数据库时,会出现此错误。下面是我的代码,后面是我在尝试运行迁移时遇到的错误。 密码 错误消息 [Illumb\Database\QueryException] SQLSTATE[HY000]:一般错误:1005无法创建表(errno:150“外键约束格式不正确”)(sql:alter 表添加约束MEINS\u category\u id\u外键()参考()关于删除级联)
使用Laravel 5.3和雄辩模型,试图制作一个用户角色模型。我有2个表用户和角色的主要模式,每个用户都有一个角色,每个角色都有很多用户(一对多的关系)。 当我试图在用户表中创建一个引用角色表中id的外键时,它会给我这个错误 在Connection.php647行: SQLSTATE[HY000]:一般错误:1005无法创建表mydata。#sql-7e0_71(错误号:150“外键约束格式不正
问题内容: 我有两个表,是一列父表,并与一列(而不是实际的名称),当我把一个FK上,以在我得到的错误。如果要删除记录,我想删除表2记录。谢谢你的帮助 让我知道是否需要其他信息。我是mysql新手 问题答案: 我在HeidiSQL中遇到了同样的问题。您收到的错误非常神秘。我的问题最终是外键列和引用列的类型或长度不同。 外键列为,引用列为。一旦将它们设置为完全相同的类型,外键创建就可以完美地工作了。
我有一个帖子表和一个到达表,它引用了flight no(文本字符串格式)作为外键。然而,当我运行Laravel迁移时,我得到了可怕的错误: SQLSTATE[HY000]:常规错误: 1005不能创建表.(errno: 150"外键约束格式不正确")(SQL:改变表添加约束外键()引用() [PDOExc0019]SQLSTATE[HY000]:常规错误: 1005不能创建表.(errno: 15
我有一个订单表和一个有一个引用作为一个外来的。然而,当我运行Laravel迁移我得到可怕的错误代码: SQLSTATE[HY000]:常规错误: 1005不能创建表.(errno: 150"外键约束格式不正确")(SQL:改变表add约束外键()引用() SQLSTATE[HY000]:常规错误: 1005不能创建表.(errno: 150"外键约束格式不正确") 这是我的表模式: 这是我的sch