首先,我知道StackOverflow上有很多关于这个主题的帖子。 我检查了他们,但没有人回答我的问题。
第二件事,我在OVH上使用PHPMyAdmin。所以我不是管理员,我没有root权限。这意味着有人为我创建了数据库并给我登录/密码来访问它。
所以这是我的问题。
我尝试创建一个名为matrice_solution
的表。这是默认的create table
。
CREATE TABLE `matrice_solution` (
`id_matrice_solution` int(11) NOT NULL AUTO_INCREMENT,
`label` varchar(100) NOT NULL COMMENT 'Texte indicatif pour définir la matrice de solution',
`fk_id_matrice` int(11) NOT NULL COMMENT 'Une combinaison de réponse, et donc son identifiant de matrice associé, n''accepte qu''une seule solution',
`fk_id_solution` int(11) DEFAULT NULL COMMENT 'Une matrice de solution peut pointer soit vers une solution, soit vers une étape',
`fk_id_nextstep` int(11) DEFAULT NULL COMMENT 'Une matrice de solution peut pointer soit vers une solution, soit vers une étape',
`fk_id_step` int(11) NOT NULL COMMENT 'Une matrice de solution appartient a une étape',
PRIMARY KEY (`id_matrice_solution`),
UNIQUE KEY `fk_id_matricesolution_UNIQUE` (`fk_id_solution`,`fk_id_matrice`),
KEY `fk_matricesolution_matrice_idx` (`fk_id_matrice`),
KEY `fk_matricesolution_solution_idx` (`fk_id_solution`),
KEY `fk_matricesolution_nextstep_idx` (`fk_id_nextstep`),
KEY `fk_matricesolution_step_idx` (`fk_id_step`),
CONSTRAINT `fk_matricesolution_matrice` FOREIGN KEY (`fk_id_matrice`) REFERENCES `matrice` (`id_matrice`) ON DELETE CASCADE ON UPDATE NO ACTION,
CONSTRAINT `fk_matricesolution_nextstep` FOREIGN KEY (`fk_id_nextstep`) REFERENCES `step` (`id_step`) ON DELETE CASCADE ON UPDATE NO ACTION,
CONSTRAINT `fk_matricesolution_solution` FOREIGN KEY (`fk_id_solution`) REFERENCES `solution` (`id_solution`) ON DELETE CASCADE ON UPDATE NO ACTION,
CONSTRAINT `fk_matricesolution_step` FOREIGN KEY (`fk_id_step`) REFERENCES `step` (`id_step`) ON DELETE CASCADE ON UPDATE NO ACTION
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
对于信息,外键引用的所有其他表都已创建。
但是当我尝试创建此表时,我遇到了一个着名的错误:mysql #1005 - Can't create table
和详细信息Supports transactions, row-level locking, and foreign keys
。
真正的问题是,如果我尝试用最简单的方法创建这个表,我也没有用。同样的问题:
CREATE TABLE `matrice_solution` (
`id_matrice_solution` int(11) NOT NULL,
`label` varchar(100) NOT NULL COMMENT 'Texte indicatif pour définir la matrice de solution',
`fk_id_matrice` int(11) NOT NULL COMMENT 'Une combinaison de réponse, et donc son identifiant de matrice associé, n''accepte qu''une seule solution',
`fk_id_solution` int(11) DEFAULT NULL COMMENT 'Une matrice de solution peut pointer soit vers une solution, soit vers une étape',
`fk_id_nextstep` int(11) DEFAULT NULL COMMENT 'Une matrice de solution peut pointer soit vers une solution, soit vers une étape',
`fk_id_step` int(11) NOT NULL COMMENT 'Une matrice de solution appartient a une étape'
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
事实是我已经create
这个表一次了,但是我错过了使用id_matrice_solution
而不是matrice_solution
命名它。 PHPMyAdmin没有让我们使用RENAME TABLE
。这就是为什么我放弃它并试图重新创建它。没有成功。我想有一些参考文献仍然存在,可能在information_schema
,但我没有找到任何东西。
我肯定错过了什么。
一些帮助会非常好。我对这个问题进行了2个小时的讨论,如果它继续下去,我的大脑也会爆炸,我的电脑也会爆炸;)
编辑:
即使这不起作用:
CREATE TABLE `matrice_solution` (
`id_matrice_solution` int(11)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;