Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法创建表mysql(mariadb)。表已损坏_Mysql_Mariadb - Fatal编程技术网

无法创建表mysql(mariadb)。表已损坏

无法创建表mysql(mariadb)。表已损坏,mysql,mariadb,Mysql,Mariadb,不知怎么回事,我的数据库已经进入了一个糟糕的状态。我以前有一个名为live_stream的表。当我试图删除外键约束时,我遇到了一个错误,mariadb无法将\sql-26_e7a重命名为live_stream。现在,当我尝试运行下面的语句时,我得到了这个错误 无法创建表live\u stream(错误号:150“外键约束格式不正确”) CREATE TABLE live\u流 (idbigint(20)非空主键) 如您所见,我在定义中没有任何外键约束。如果我尝试使用不同的表名使用完全相同的定义,

不知怎么回事,我的数据库已经进入了一个糟糕的状态。我以前有一个名为live_stream的表。当我试图删除外键约束时,我遇到了一个错误,mariadb无法将
\sql-26_e7a
重命名为
live_stream
。现在,当我尝试运行下面的语句时,我得到了这个错误

无法创建表
live\u stream
(错误号:150“外键约束格式不正确”)

CREATE TABLE live\u流
(
id
bigint(20)非空主键)

如您所见,我在定义中没有任何外键约束。如果我尝试使用不同的表名使用完全相同的定义,它会起作用。如果我试图放下桌子,mariadb会抱怨live_stream不存在。它就像表或外键被卡在事务或类似的东西中一样

我正在使用galara和maria db 10.3

更新

我相信当外键和唯一索引被赋予相同的名称时,问题就出现了。我重新创建了这个场景,当我试图删除索引时,mariadb阻止了它

*更新2* 这是显示引擎INNODB状态的输出;

*更新3*

以下是复制的步骤

创建表tb1 ( id bigint null, 约束tb1_pk 主键(id) );

创建表tb2 ( id bigint null, tb1_id bigint null, 约束tb2_pk 主键(id), 约束tb2\U tb1\U id\U fk 外键(tb1_id)引用tb1(id) );

更改表
tb2
添加约束
tb2\u tb1\u id\u fk
唯一(
tb1\u id
tb1\u id

将索引tb2_tb1_id_fk放到tb2上


问题是,唯一约束与外键同名,并且引用同一列两次。

您是否可以尝试创建或替换,而不是仅创建一个。您可以给我一个示例吗@SatyaCREATE或REPLACE TABLE live_stream(id BIGINT NOT NULL主键)@Satya same error::您可以在命令提示符下尝试此命令以查看错误:mysqlcheck-uroot-p